home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 405_01 / flexpp / lex_yy.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-02  |  98.4 KB  |  3,171 lines

  1. #define YY_CHAR char
  2. # line 1 "/u/icdc/rdt/tools/lib/flexskel.cc"
  3. /* A lexical scanner generated by flex */
  4. /* scanner skeleton version:
  5.  * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp $
  6.  */
  7. /* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
  8. /* Note that (at) mean the 'at' symbol that I cannot write */
  9. /* because it is expanded to the class name */
  10. /* made at Informatique-CDC, Research&development department */
  11. /* company from the Caisse Des Depots et Consignations */
  12. /* institutional financial group (say 'Cat Doc Cad') */
  13.  
  14. /* theses symbols are added before this file */
  15. /* #define YY_CHAR 'unsigned char' if 8bit or 'char' if 7bit */
  16. /* #define FLEX_DEBUG if debug mode */
  17. #define FLEX_SCANNER
  18. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  19. #ifdef c_plusplus
  20. #ifndef __cplusplus
  21. #define __cplusplus
  22. #endif
  23. #endif
  24. #ifdef __cplusplus
  25. #include <stdlib.h>
  26. #define YY_USE_CONST
  27. char *malloc();
  28. int free();
  29. int read();
  30. #define YY_USE_PROTOS
  31. #include <osfcn.h>
  32. #else    /* ! __cplusplus */
  33. #ifdef __STDC__
  34. #ifdef __GNUC__
  35. #include <stddef.h>
  36. void *malloc( size_t );
  37. void free( void* );
  38. int read();
  39. #else
  40. #include <stdlib.h>
  41. char *malloc();
  42. int free();
  43. int read();
  44. #endif    /* __GNUC__ */
  45. #define YY_USE_PROTOS
  46. #define YY_USE_CONST
  47. #endif    /* __STDC__ */
  48. #endif    /* ! __cplusplus */
  49. #ifdef __TURBOC__
  50. #define YY_USE_CONST
  51. #endif
  52. #include <stdio.h>
  53. /*********************************************/
  54. /* COMPILER DEPENDENT   MACROS               */
  55. /*********************************************/
  56. /* use prototypes in function declarations */
  57. /* the "const" storage-class-modifier is valid */
  58. #ifndef YY_USE_CONST
  59. #define const
  60. #endif
  61. /* use prototypes in function declarations */
  62. #ifndef YY_PROTO
  63. #ifdef YY_USE_PROTOS
  64. #define YY_PROTO(proto) proto
  65. #else
  66. #define YY_PROTO(proto) ()
  67. #endif
  68. #endif
  69.  
  70.  
  71. /*********************/
  72. /* parameters        */
  73.  
  74. /* amount of stuff to slurp up with each read */
  75. #ifndef YY_READ_BUF_SIZE
  76. #define YY_READ_BUF_SIZE 8192
  77. #endif
  78. /* size of default input buffer */
  79. #ifndef YY_BUF_SIZE
  80. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) 
  81. #endif
  82.  
  83. /***********************************/
  84. /* to be redefined for application */
  85.  
  86. /* returned upon end-of-file */
  87. #define YY_END_TOK 0
  88. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  89.  * we don't want an extra ';' after the "return" because that will cause
  90.  * some compilers to complain about unreachable statements.
  91.  */
  92. #define yyterminate() return ( YY_NULL )
  93.  
  94. /* code executed at the end of each rule */
  95. #define YY_BREAK break;
  96.  
  97. /* #define YY_USER_ACTION */
  98. /* #define YY_USER_INIT */
  99.  
  100.  
  101. #ifndef YY_USE_CLASS
  102. /* copy whatever the last rule matched to the standard output */
  103. /* cast to (char *) is because for 8-bit chars, yy___text is (unsigned char *) */
  104. /* this used to be an fputs(), but since the string might contain NUL's,
  105.  * we now use fwrite()
  106.  */
  107. #define ECHO (void) fwrite( (char *) yy___text, yy___leng, 1, yy___out )
  108.  
  109. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  110.  * is returned in "result".
  111.  */
  112. #define YY_INPUT(buf,result,max_size) \
  113.     if ( (result = read( fileno(yy___in), (char *) buf, max_size )) < 0 ) \
  114.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  115.  
  116. /* report a fatal error */
  117.  
  118. /* The funky do-while is used to turn this macro definition into
  119.  * a single C statement (which needs a semi-colon terminator).
  120.  * This avoids problems with code like:
  121.  *
  122.  *     if ( something_happens )
  123.  *        YY_FATAL_ERROR( "oops, the something happened" );
  124.  *    else
  125.  *        everything_okay();
  126.  *
  127.  * Prior to using the do-while the compiler would get upset at the
  128.  * "else" because it interpreted the "if" statement as being all
  129.  * done when it reached the ';' after the YY_FATAL_ERROR() call.
  130.  */
  131.  
  132. #define YY_FATAL_ERROR(msg) \
  133.     do \
  134.         { \
  135.         (void) fputs( msg, stderr ); \
  136.         (void) putc( '\n', stderr ); \
  137.         exit( 1 ); \
  138.         } \
  139.     while ( 0 )
  140.  
  141. /* default yywrap function - always treat EOF as an EOF */
  142. #define yywrap() 1
  143.  
  144.  
  145. /* default declaration of generated scanner - a define so the user can
  146.  * easily add parameters
  147.  */
  148. #define YY_DECL int yylex YY_PROTO(( void )) 
  149. #else 
  150. /* c++ */
  151. #define ECHO yy___echo()
  152. #define YY_INPUT(buf,result,max_size) \
  153.     if ( yy___input((char *)buf, result,max_size) < 0 ) \
  154.         YY_FATAL_ERROR( "YY_INPUT() in flex scanner failed" );
  155.  
  156. #define YY_FATAL_ERROR(msg) yy___fatal_error(msg)
  157. #define yywrap() yy___wrap()
  158.  
  159. #endif
  160. /***********************************/
  161. /* not to be changed */
  162. #define YY_NULL 0
  163. #define YY_END_OF_BUFFER_CHAR 0
  164. /* special action meaning "start processing a new file" */
  165. #define YY_NEW_FILE \
  166.     do \
  167.         { \
  168.         yy_init_buffer( yy_current_buffer, yy___in ); \
  169.         yy_load_buffer_state(); \
  170.         } \
  171.     while ( 0 )
  172. /* enter a start condition.  This macro really ought to take a parameter,
  173.  * but we do it the disgusting crufty way forced on us by the ()-less
  174.  * definition of BEGIN
  175.  */
  176. #define BEGIN yy_start = 1 + 2 *
  177.  
  178. /* action number for EOF rule of a given start state */
  179. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  180.  
  181.  
  182.  
  183. /* % section 1 definitions go here */ 
  184. #line 1 "scan.l"
  185. #define INITIAL 0
  186. /* scan.l - scanner for flex input */
  187. #line 5 "scan.l"
  188. /*-
  189.  * Copyright (c) 1990 The Regents of the University of California.
  190.  * All rights reserved.
  191.  *
  192.  * This code is derived from software contributed to Berkeley by
  193.  * Vern Paxson.
  194.  * 
  195.  * The United States Government has rights in this work pursuant
  196.  * to contract no. DE-AC03-76SF00098 between the United States
  197.  * Department of Energy and the University of California.
  198.  *
  199.  * Redistribution and use in source and binary forms are permitted provided
  200.  * that: (1) source distributions retain this entire copyright notice and
  201.  * comment, and (2) distributions including binaries display the following
  202.  * acknowledgement:  ``This product includes software developed by the
  203.  * University of California, Berkeley and its contributors'' in the
  204.  * documentation or other materials provided with the distribution and in
  205.  * all advertising materials mentioning features or use of this software.
  206.  * Neither the name of the University nor the names of its contributors may
  207.  * be used to endorse or promote products derived from this software without
  208.  * specific prior written permission.
  209.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  210.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  211.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  212.  */
  213.  
  214. #ifndef lint
  215. static char rcsid[] =
  216.     "@(#) $Header: /usr/fsys/odin/a/vern/flex/RCS/scan.l,v 2.9 90/06/27 23:48:34 vern Exp $ (LBL)";
  217. #endif
  218.  
  219. #undef yywrap
  220.  
  221. #include "flexdef.h"
  222. #include "parse.h"
  223.  
  224. #define HEADER_ECHO fprintf(headerfile,"%s",yytext )
  225. #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
  226. #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
  227.  
  228. #undef YY_DECL
  229. #define YY_DECL \
  230.     int flexscan()
  231.  
  232. #define RETURNCHAR \
  233.     yylval = yytext[0]; \
  234.     return ( CHAR );
  235.  
  236. #define RETURNNAME \
  237.     (void) strcpy( nmstr, (char *) yytext ); \
  238.     return ( NAME );
  239.  
  240. #define PUT_BACK_STRING(str, start) \
  241.     for ( i = strlen( (char *) (str) ) - 1; i >= start; --i ) \
  242.         unput((str)[i])
  243.  
  244. #define CHECK_REJECT(str) \
  245.     if ( all_upper( str ) ) \
  246.         reject = true;
  247.  
  248. #define CHECK_YYMORE(str) \
  249.     if ( all_lower( str ) ) \
  250.         yymore_used = true;
  251. #define SECT2 1
  252. #define SECT2PROLOG 2
  253. #define SECT3 3
  254. #define CODEBLOCK 4
  255. #define PICKUPDEF 5
  256. #define SC 6
  257. #define CARETISBOL 7
  258. #define NUM 8
  259. #define QUOTE 9
  260. #define FIRSTCCL 10
  261. #define CCL 11
  262. #define ACTION 12
  263. #define RECOVER 13
  264. #define BRACEERROR 14
  265. #define C_COMMENT 15
  266. #define ACTION_COMMENT 16
  267. #define ACTION_STRING 17
  268. #define PERCENT_BRACE_ACTION 18
  269. #define USED_LIST 19
  270. #define CODEBLOCK_2 20
  271. #define XLATION 21
  272. #define HEADER_BLOC 22
  273. #define HEADER2_BLOC 23
  274. #define NAME_DECLARE 24
  275. #define DEFINE_DECLARE 25
  276. #define DEFINE_CONTENT 26
  277. #define YY_lex_FLEX_SCANNER
  278. #define YY_lex_CHAR char
  279. # line 1 "/u/icdc/rdt/tools/lib/flexskel.h"
  280. /* A lexical scanner header generated by flex */
  281. /* think about #define YY_CHAR unsigned char / char */
  282.  
  283. /* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
  284. /* Note that (at) mean the 'at' symbol that I cannot write */
  285. /* because it is expanded to the class name */
  286. /* made at Informatique-CDC, Research&development department */
  287. /* company from the Caisse Des Depots et Consignations */
  288.  
  289.  
  290. /*********************************************/
  291. /* SYSTEM dependent declaration, includes... */
  292. /*********************************************/
  293. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  294. #ifdef c_plusplus
  295. #ifndef __cplusplus
  296. #define __cplusplus
  297. #endif
  298. #endif
  299. #ifdef __cplusplus
  300. #ifndef YY_USE_PROTOS
  301. #define YY_USE_PROTOS
  302. #endif
  303. #ifndef YY_USE_CLASS
  304. #define YY_USE_CLASS
  305. #endif
  306. #else    /* ! __cplusplus */
  307. #ifdef __STDC__
  308. #ifdef __GNUC__
  309. #else
  310. #endif    /* __GNUC__ */
  311. #ifndef YY_USE_PROTOS
  312. #define YY_USE_PROTOS
  313. #endif
  314. #endif    /* __STDC__ */
  315. #endif    /* ! __cplusplus */
  316. /*********************************************/
  317. /* COMPILER DEPENDENT   MACROS               */
  318. /*********************************************/
  319. /* use prototypes in function declarations */
  320. #ifndef YY_PROTO
  321. #ifdef YY_USE_PROTOS
  322. #define YY_PROTO(proto) proto
  323. #else
  324. #define YY_PROTO(proto) ()
  325. #endif
  326. #endif
  327. #include <stdio.h>
  328.  
  329.  
  330.  
  331.  
  332. /* % here is the declaration from section1 %header{  */ 
  333. #line 86 "scan.l"
  334. #line 86 "scan.l"
  335. #line 561 "scan.l"
  336. # line 54 "/u/icdc/rdt/tools/lib/flexskel.h"
  337.  
  338.  
  339.  
  340. #ifndef YY_lex_TEXT
  341. #define YY_lex_TEXT yytext
  342. #endif
  343. #ifndef YY_lex_LENG
  344. #define YY_lex_LENG yyleng
  345. #endif
  346. #ifndef YY_lex_IN
  347. #define YY_lex_IN yyin
  348. #endif
  349. #ifndef YY_lex_OUT
  350. #define YY_lex_OUT yyout
  351. #endif
  352.  
  353.  
  354. #ifndef YY_USE_CLASS
  355. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  356.  
  357. extern void yyrestart YY_PROTO(( FILE *input_file ));
  358. extern void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  359. extern void yy_load_buffer_state YY_PROTO(( void ));
  360. extern YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  361. extern void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  362. extern void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  363. #define yy_new_buffer yy_create_buffer
  364. extern YY_CHAR *YY_lex_TEXT;
  365. extern int YY_lex_LENG;
  366. extern FILE *YY_lex_IN, *YY_lex_OUT;
  367.  
  368. #else
  369.  
  370.  
  371. #ifndef YY_lex_ECHO
  372. #define YY_lex_ECHO yy_echo
  373. #endif
  374. #ifdef YY_lex_ECHO_PURE
  375. #define YY_lex_ECHO_NOCODE
  376. #endif
  377. #ifndef YY_lex_ECHO_CODE
  378. #define YY_lex_ECHO_CODE fwrite( (char *) YY_lex_TEXT, YY_lex_LENG, 1, YY_lex_OUT );
  379. #endif
  380. #ifndef YY_lex_INPUT
  381. #define YY_lex_INPUT yy_input
  382. #endif
  383. #ifdef YY_lex_INPUT_PURE
  384. #define YY_lex_INPUT_NOCODE
  385. #endif
  386. #ifndef YY_lex_INPUT_CODE
  387. #define YY_lex_INPUT_CODE return result= fread(  buffer, 1,max_size,YY_lex_IN );
  388. #endif
  389. #ifdef YY_lex_FATAL_ERROR_PURE
  390. #define YY_lex_FATAL_ERRO_NOCODE
  391. #endif
  392. #ifndef YY_lex_FATAL_ERROR
  393. #define YY_lex_FATAL_ERROR yy_fatal_error
  394. #endif
  395. #ifndef YY_lex_FATAL_ERROR_CODE
  396. #define YY_lex_FATAL_ERROR_CODE fputs( msg, stderr );putc( '\n', stderr );exit( 1 );
  397. #endif
  398. #ifndef YY_lex_WRAP
  399. #define YY_lex_WRAP yy_wrap
  400. #endif
  401. #ifdef YY_lex_WRAP_PURE
  402. #define YY_lex_WRAP_NOCODE
  403. #endif
  404. #ifndef YY_lex_WRAP_CODE
  405. #define YY_lex_WRAP_CODE return 1;
  406. #endif
  407.  
  408.  
  409. #ifndef YY_lex_INHERIT
  410. #define YY_lex_INHERIT
  411. #endif
  412. #ifndef YY_lex_LEXRETURN
  413. #define YY_lex_LEXRETURN int
  414. #endif
  415. #ifndef YY_lex_LEX
  416. #define YY_lex_LEX yylex
  417. #endif
  418. #ifndef YY_lex_LEXPARAM
  419. #define YY_lex_LEXPARAM void
  420. #endif
  421. #ifndef YY_lex_MEMBERS
  422. #define YY_lex_MEMBERS 
  423. #endif
  424. #ifndef YY_lex_CONSTRUCTOR_PARAM
  425. #define YY_lex_CONSTRUCTOR_PARAM
  426. #endif
  427. #ifndef YY_lex_CONSTRUCTOR_CODE
  428. #define YY_lex_CONSTRUCTOR_CODE
  429. #endif
  430. #ifndef YY_lex_CONSTRUCTOR_INIT
  431. #define YY_lex_CONSTRUCTOR_INIT
  432. #endif
  433. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  434.  
  435. class lex YY_lex_INHERIT
  436. {
  437.  private:/* data */
  438.  YY_CHAR *yy_c_buf_p;
  439.  YY_CHAR yy_hold_char;
  440.  int yy_n_chars;
  441.  int yy_init;
  442.  int yy_start;
  443.  int yy_did_buffer_switch_on_eof;
  444.  private: /* functions */
  445.  void yy_initialize();
  446.  int input();
  447.  int yy_get_next_buffer();
  448.  void yyunput( YY_CHAR c, YY_CHAR *buf_ptr );
  449.  /* use long instead of yy_state_type because it is undef */
  450.  long yy_get_previous_state_ ( void );
  451.  long yy_try_NUL_trans_  ( long current_state_ );
  452.  protected:/* non virtual */
  453.  YY_BUFFER_STATE yy_current_buffer;
  454.  void yyrestart ( FILE *input_file );
  455.  void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer );
  456.  void yy_load_buffer_state( void );
  457.  YY_BUFFER_STATE yy_create_buffer( FILE *file, int size );
  458.  YY_BUFFER_STATE yy_new_buffer( FILE *file, int size )
  459.         {return yy_create_buffer(file,size);}
  460.  void yy_delete_buffer( YY_BUFFER_STATE b );
  461.  void yy_init_buffer( YY_BUFFER_STATE b, FILE *file );
  462.  protected: /* virtual */
  463.  virtual void YY_lex_ECHO()
  464. #ifdef YY_lex_ECHO_PURE
  465.   =0
  466. #endif
  467.   ;
  468.  virtual int  YY_lex_INPUT(char  *buf,int &result,int max_size)
  469. #ifdef YY_lex_INPUT_PURE
  470.   =0
  471. #endif
  472.   ;
  473.  virtual void  YY_lex_FATAL_ERROR(char *msg)
  474. #ifdef YY_lex_FATAL_ERROR_PURE
  475.   =0
  476. #endif
  477.   ;
  478.  virtual int  YY_lex_WRAP()
  479. #ifdef YY_lex_WRAP_PURE
  480.   =0
  481. #endif
  482.   ;
  483.  public:
  484.  YY_CHAR *YY_lex_TEXT;
  485.  int YY_lex_LENG;
  486.  FILE *YY_lex_IN, *YY_lex_OUT;
  487.  YY_lex_LEXRETURN YY_lex_LEX ( YY_lex_LEXPARAM);
  488.  lex(YY_lex_CONSTRUCTOR_PARAM) ;
  489.  public: /* added members */
  490.  YY_lex_MEMBERS 
  491. };
  492. #endif
  493.  
  494.  
  495.  
  496. /* declaration of externs for public use of yylex scanner */
  497.  
  498. /* % here is the declaration from section2 %header{ */ 
  499. # line 182 "/u/icdc/rdt/tools/lib/flexskel.cc"
  500.  
  501. #define yy___text YY_lex_TEXT
  502. #define yy___leng YY_lex_LENG
  503. #define yy___in YY_lex_IN
  504. #define yy___out YY_lex_OUT
  505.  
  506.  
  507. #ifdef YY_USE_CLASS
  508.  
  509. #define yy___echo YY_lex_ECHO
  510. #define yy___input YY_lex_INPUT
  511. #define yy___fatal_error YY_lex_FATAL_ERROR
  512. #define yy___wrap YY_lex_WRAP
  513.  
  514. #endif
  515.  
  516. /* done after the current pattern has been matched and before the
  517.  * corresponding action - sets up yy___text
  518.  */
  519. #define YY_DO_BEFORE_ACTION \
  520.     yy___text = yy_bp; \
  521. /* % code to fiddle yy___text and yy___leng for yymore() goes here */ \
  522.     yy___leng = yy_cp - yy_bp; \
  523.     yy_hold_char = *yy_cp; \
  524.     *yy_cp = '\0'; \
  525.     yy_c_buf_p = yy_cp;
  526.  
  527. #define EOB_ACT_CONTINUE_SCAN 0
  528. #define EOB_ACT_END_OF_FILE 1
  529. #define EOB_ACT_LAST_MATCH 2
  530.  
  531. /* return all but the first 'n' matched characters back to the input stream */
  532. #define yyless(n) \
  533.     do \
  534.         { \
  535.         /* undo effects of setting up yy___text */ \
  536.         *yy_cp = yy_hold_char; \
  537.         yy_c_buf_p = yy_cp = yy_bp + n; \
  538.         YY_DO_BEFORE_ACTION; /* set up yy___text again */ \
  539.         } \
  540.     while ( 0 )
  541.  
  542. #define unput(c) yyunput( c, yy___text )
  543.  
  544.  
  545.  
  546. struct yy_buffer_state
  547.     {
  548.     FILE *yy_input_file;
  549.  
  550.     YY_CHAR *yy_ch_buf;        /* input buffer */
  551.     YY_CHAR *yy_buf_pos;    /* current position in input buffer */
  552.  
  553.     /* size of input buffer in bytes, not including room for EOB characters*/
  554.     int yy_buf_size;    
  555.  
  556.     /* number of characters read into yy_ch_buf, not including EOB characters */
  557.     int yy_n_chars;
  558.  
  559.     int yy_eof_status;        /* whether we've seen an EOF on this buffer */
  560. #define EOF_NOT_SEEN 0
  561.     /* "pending" happens when the EOF has been seen but there's still
  562.      * some text process
  563.      */
  564. #define EOF_PENDING 1
  565. #define EOF_DONE 2
  566.     };
  567.  
  568. /* we provide macros for accessing buffer states in case in the
  569.  * future we want to put the buffer states in a more general
  570.  * "scanner state"
  571.  */
  572.  
  573. #ifndef YY_USE_CLASS
  574. #define YY_CURRENT_BUFFER yy_current_buffer
  575. static YY_BUFFER_STATE yy_current_buffer;
  576. /* yy_hold_char holds the character lost when yy___text is formed */
  577. static YY_CHAR yy_hold_char;
  578.  
  579. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  580.  
  581. /* GLOBAL */
  582. YY_CHAR *yy___text;
  583. int yy___leng;
  584.  
  585. FILE *yy___in = (FILE *) 0, *yy___out = (FILE *) 0;
  586.  
  587. #ifdef __cplusplus
  588. static int yyinput YY_PROTO(( void ));
  589. #else
  590. static int input YY_PROTO(( void ));
  591. #endif
  592. /* these variables are all declared out here so that section 3 code can
  593.  * manipulate them
  594.  */
  595. /* points to current character in buffer */
  596. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  597. static int yy_init = 1;        /* whether we need to initialize */
  598. static int yy_start = 0;    /* start state number */
  599.  
  600. /* flag which is used to allow yywrap()'s to do buffer switches
  601.  * instead of setting up a fresh yy___in.  A bit of a hack ...
  602.  */
  603. static int yy_did_buffer_switch_on_eof;
  604.  
  605. static int yy_get_next_buffer YY_PROTO(( void ));
  606. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  607.  
  608. #else
  609. /* c++ */
  610. #ifndef YY_lex_ECHO_NOCODE
  611. void lex::yy___echo()
  612. {YY_lex_ECHO_CODE
  613. };
  614. #endif
  615. #ifndef YY_lex_INPUT_NOCODE
  616. int  lex::yy___input(char * buffer,int &result,int max_size)
  617. {YY_lex_INPUT_CODE
  618. };
  619. #endif
  620. #ifndef YY_lex_FATAL_ERROR_NOCODE
  621. void lex::yy___fatal_error(char *msg)
  622. {YY_lex_FATAL_ERROR_CODE
  623. };
  624. #endif
  625. #ifndef YY_lex_WRAP_NOCODE
  626. int  lex::yy___wrap()
  627. {YY_lex_WRAP_CODE
  628. };
  629. #endif
  630. void lex::yy_initialize()
  631. {
  632.  yy___in=0;yy___out=0;yy_init = 1;
  633.  yy_start=0;
  634.  yy___text=0;yy___leng=0;
  635.  yy_current_buffer=0;
  636.  yy_did_buffer_switch_on_eof=0;
  637.  yy_c_buf_p=0;yy_hold_char=0;yy_n_chars=0;
  638. };
  639. lex::lex(YY_lex_CONSTRUCTOR_PARAM) YY_lex_CONSTRUCTOR_INIT
  640. {yy_initialize();
  641.  YY_lex_CONSTRUCTOR_CODE;
  642. };
  643.  
  644. #endif
  645.  
  646.  
  647. #ifndef YY_USER_ACTION
  648. #define YY_USER_ACTION
  649. #endif
  650.  
  651. #ifndef YY_USER_INIT
  652. #define YY_USER_INIT
  653. #endif
  654.  
  655. /* % data tables for the DFA go here */ 
  656. #define YY_END_OF_BUFFER 147
  657. typedef int yy_state_type;
  658. static const short int yy_acclist[679] =
  659.     {   0,
  660.     16469,16469,  145,  145,  147,   23,  146,   11,   23,  146,
  661.        22,  146,   22,   23,  146,   23,  146,   20,   23,  146,
  662.         1,   11,   23,  146,   21,   22,  146,   21,   22,   23,
  663.       146,   23,  146,   23,  146,   23,  146,   19,   20,   23,
  664.       146,   92,  146,   84,   92,  146,16469, 8277,   93,  146,
  665.      8277,   92,   93,  146,   78,   92,  146,   92,  146,   91,
  666.        92,  146,   76,   92,  146,   92,  146,   92,  146,   92,
  667.       146,   75,   84,   92,  146,16469,   73, 8277,   86,   93,
  668.       146,   73, 8277,   86,   92,   93,  146,   92,  146,   77,
  669.        92,  146,  146,   71,  146,   71,  146,  145,  146,  145,
  670.  
  671.       146,  145,  146,   52,  146,   53,  146,   52,   53,  146,
  672.        52,  146,   52,  146,   52,  146,   52,  146,   55,  146,
  673.        54,  146,   56,  146,   56,  146,   98,  146,  146,   94,
  674.        98,  146,   95,   98,  146,   97,   98,  146,   99,  146,
  675.       113,  146,  114,  146,  113,  114,  146,  111,  113,  146,
  676.       110,  113,  146,  112,  113,  146,  100,  146,  102,  146,
  677.       102,  146,  101,  146,  100,  146,  106,  146,  105,  106,
  678.       146,  106,  146,  106,  146,  108,  146,  108,  146,  108,
  679.       146,  109,  146,  124,  131,  146,  130,  146,  130,  131,
  680.       146,  129,  131,  146,  131,  146,  131,  146,  125,  131,
  681.  
  682.       146,  125,  131,  146,  125,  131,  146,  122,  131,  146,
  683.       123,  131,  146,  146,   57,  146,   57,  146,  116,  146,
  684.       116,  146,  115,  146,   36,  146,   38,  146,   38,  146,
  685.        37,  146,  133,  136,  146,  135,  146,  135,  136,  146,
  686.       134,  136,  146,  137,  141,  146,  139,  146,  139,  141,
  687.       146,  140,  141,  146,  141,  146,  120,  146,  120,  146,
  688.       121,  146,  120,  121,  146,  120,  146,  120,  146,  120,
  689.       146,  120,  146,   62,  146,   59,  146,   58,  146,   58,
  690.       146,   62,  146,   62,  146,   68,  146,   66,   68,  146,
  691.        69,  146,   68,   69,  146,   68,  146,   68,  146,   65,
  692.  
  693.        68,  146,   65,   66,   68,  146,   65,   68,   69,  146,
  694.        65,   68,  146,   64,   65,   68,  146,   65,   68,  146,
  695.        42,  146,   43,  146,   42,   43,  146,   42,  146,   42,
  696.       146,   42,  146,   42,  146,   47,  146,   48,  146,   47,
  697.        48,  146,   47,  146,   47,  146,   47,  146,   47,  146,
  698.        27,  146,   25,   27,  146,   26,  146,   26,   27,  146,
  699.        24,   27,  146,   29,  146,   30,  146,   29,   30,  146,
  700.        28,   29,  146,   33,  146,   32,  146,   32,   33,  146,
  701.        33,  146,   11,   22,   22,   20,    1,   11,   21,   22,
  702.        21,   22,    2,    2,   18,   12,   18,   16,   18,   18,
  703.  
  704.         5,    6,    4,   19,   20,   84,16469, 8277, 8277, 8277,
  705.        93,   81,  143,  143,  143,   80,   79,   80,   75,   84,
  706.     16469,   73, 8277,   86,   73, 8277,   86,   73, 8277,   86,
  707.        93,   88,   75,   71,   71,   70,   70,   71,   71,  145,
  708.       145,  145,  145,  145,   52,   53,   52,   52,   52,   52,
  709.        55,   54,   56,   96,   97,  114,  110,  102,  144,  144,
  710.       144,  103,  104,  107,  124,  130,  128,  127,  125,  125,
  711.       125,   57,   57,   57,   57,  116,   36,   38,   34,  133,
  712.       135,  132,  137,  139,  138,  120,  120,  120,  121,  117,
  713.       120,  120,  120,  120,   62,   59,   58,   62,   62,   66,
  714.  
  715.        69,   67,   67,   67,   66,   64,   42,   43,   42,   42,
  716.        42,   42,   47,   48,   47,   47,   47,   47,   25,   26,
  717.        24,   30,   28,   32,   31,   31,   17,   17,    2,    2,
  718.        18,   12,   12,   18,   16,    5,    6,    9,    9,    3,
  719.         3,   82,   83,   83,   89,  143,  143,   80,   80,   90,
  720.        88,   52,   52,   52,   49,   49,  144,  144,  126,  126,
  721.       125,  125,   35,   35,  117,  120,  117,  120,  120,   62,
  722.        62,   63,   63,   67,   67,   42,   42,   42,   39,   39,
  723.        47,   47,   47,   44,   44,   15,   15,    5,   15,   17,
  724.        15,   17,    6,    9,    9,    3,    3,   83,   83,  143,
  725.  
  726.        52,   52,   49,   49,  144,  126,  126,  125,  125,   35,
  727.        35,  120,  120,   62,   62,   67,   42,   42,   39,   39,
  728.        47,   47,   44,   44,   15,   15,   15,   15,   17,   13,
  729.        52,   52,  125,  125,  120,  120,   62,   62,   42,   42,
  730.        47,   47,    7,   50,   52,   51,   52,  118,  125,  119,
  731.       125,  118,  120,  119,  120,   60,   62,   61,   62,   40,
  732.        42,   41,   42,   45,   47,   46,   47,   14,   87,    8,
  733.        10,   10,   74,   74,   10,   10,   74,   74
  734.     } ;
  735.  
  736. static const short int yy_accept[530] =
  737.     {   0,
  738.         1,    1,    1,    2,    3,    3,    3,    4,    5,    5,
  739.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  740.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  741.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  742.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  743.         5,    5,    5,    5,    5,    6,    8,   11,   13,   16,
  744.        18,   21,   25,   28,   32,   34,   36,   38,   42,   44,
  745.        48,   51,   55,   58,   60,   63,   66,   68,   70,   72,
  746.        77,   82,   88,   90,   93,   94,   96,   98,  100,  102,
  747.       104,  106,  108,  111,  113,  115,  117,  119,  121,  123,
  748.  
  749.       125,  127,  129,  130,  133,  136,  139,  141,  143,  145,
  750.       148,  151,  154,  157,  159,  161,  163,  165,  167,  169,
  751.       172,  174,  176,  178,  180,  182,  184,  187,  189,  192,
  752.       195,  197,  199,  202,  205,  208,  211,  214,  215,  217,
  753.       219,  221,  223,  225,  227,  229,  231,  233,  236,  238,
  754.       241,  244,  247,  249,  252,  255,  257,  259,  261,  263,
  755.       266,  268,  270,  272,  274,  276,  278,  280,  282,  284,
  756.       286,  288,  291,  293,  296,  298,  300,  303,  307,  311,
  757.       314,  318,  321,  323,  325,  328,  330,  332,  334,  336,
  758.       338,  340,  343,  345,  347,  349,  351,  353,  356,  358,
  759.  
  760.       361,  364,  366,  368,  371,  374,  376,  378,  381,  383,
  761.       384,  385,  386,  386,  387,  389,  391,  393,  393,  394,
  762.       395,  396,  398,  398,  399,  400,  401,  401,  402,  402,
  763.       402,  403,  403,  404,  404,  406,  408,  409,  410,  410,
  764.       410,  412,  413,  413,  413,  413,  414,  415,  416,  417,
  765.       418,  419,  422,  425,  428,  432,  433,  433,  434,  434,
  766.       435,  436,  437,  438,  440,  441,  442,  443,  445,  446,
  767.       447,  448,  449,  450,  451,  452,  453,  454,  455,  456,
  768.       457,  458,  459,  460,  461,  462,  463,  464,  465,  466,
  769.       467,  467,  468,  468,  469,  469,  470,  471,  472,  472,
  770.  
  771.       473,  474,  476,  477,  478,  479,  480,  481,  482,  483,
  772.       484,  485,  486,  487,  488,  489,  490,  492,  493,  494,
  773.       495,  496,  497,  498,  499,  500,  501,  502,  502,  503,
  774.       504,  505,  506,  507,  508,  509,  510,  511,  512,  513,
  775.       514,  515,  516,  517,  518,  519,  520,  521,  522,  523,
  776.       524,  525,  526,  527,  527,  528,  529,  531,  532,  533,
  777.       535,  535,  536,  536,  536,  536,  537,  537,  537,  537,
  778.       538,  538,  539,  540,  540,  541,  542,  543,  543,  544,
  779.       545,  545,  546,  546,  546,  547,  548,  549,  550,  551,
  780.       552,  552,  553,  554,  555,  556,  557,  557,  558,  559,
  781.  
  782.       559,  560,  561,  562,  563,  563,  564,  565,  567,  568,
  783.       569,  570,  571,  572,  572,  573,  574,  575,  576,  577,
  784.       578,  579,  580,  581,  581,  582,  583,  584,  585,  586,
  785.       586,  586,  587,  588,  588,  588,  588,  589,  589,  591,
  786.       593,  593,  593,  594,  596,  598,  600,  600,  600,  600,
  787.       601,  601,  602,  603,  605,  606,  608,  609,  610,  612,
  788.       613,  614,  615,  616,  617,  618,  619,  621,  622,  623,
  789.       625,  627,  627,  627,  627,  630,  630,  631,  631,  631,
  790.       631,  631,  632,  633,  634,  635,  636,  637,  638,  639,
  791.       640,  641,  642,  643,  643,  643,  644,  644,  644,  644,
  792.  
  793.       646,  648,  650,  652,  654,  656,  658,  660,  662,  664,
  794.       666,  668,  668,  668,  669,  670,  670,  671,  671,  671,
  795.       671,  672,  673,  673,  674,  675,  677,  679,  679
  796.     } ;
  797.  
  798. static const YY_CHAR yy_ec[128] =
  799.     {   0,
  800.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  801.         1,    4,    5,    1,    1,    1,    1,    1,    1,    1,
  802.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  803.         1,    6,    1,    7,    8,    9,   10,    1,   11,   12,
  804.        12,   13,   12,   14,   15,   12,   16,   17,   17,   17,
  805.        17,   17,   17,   17,   17,   17,   17,    1,    1,   18,
  806.         1,   19,   12,    1,    1,    1,    1,    1,   20,   21,
  807.         1,    1,    1,    1,    1,    1,    1,    1,   22,    1,
  808.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  809.        23,   24,   25,   26,   27,    1,   28,   29,   30,   31,
  810.  
  811.        32,   33,   27,   34,   35,   36,   37,   27,   38,   39,
  812.        40,   37,   27,   41,   42,   43,   44,   27,   27,   45,
  813.        46,   27,   47,   48,   49,    1,    1
  814.     } ;
  815.  
  816. static const YY_CHAR yy_meta[50] =
  817.     {   0,
  818.         1,    2,    3,    2,    4,    2,    5,    1,    1,    1,
  819.         6,    1,    7,    1,    8,    6,    8,    1,    1,    1,
  820.         1,    1,    1,    9,   10,    1,   11,   11,   11,   11,
  821.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  822.        11,   11,   11,   11,   11,   11,    6,    1,   12
  823.     } ;
  824.  
  825. static const short int yy_base[628] =
  826.     {   0,
  827.         0,   49,   97,  144,  102,  109,  113,  114,  192, 2198,
  828.       120,  125,  241,    0, 2181, 2178,  138,  288,  135,  158,
  829.       289,  292,  161,  295,  337,    0,  129,  130,  134,  384,
  830.       166,  175,  296,  309,  385,  388,  433,    0,  481,  487,
  831.         0,    0,  394,  532,  556, 2193,  605, 2170,  654,    0,
  832.       703,    0,  303,  398, 2176, 2342,  326, 2342, 2172, 2129,
  833.         0,  411, 2342, 2168,  169,  743,   95,    0, 2342,  492,
  834.      2342, 2165, 2342,  405, 2342, 2149, 2140,  279,  790,  502,
  835.      2342, 2154,  287, 2342,  170,    0,  421,  320, 2342,  330,
  836.         0, 2342, 2153,    0, 2120, 2105, 2092,    0,  426, 2342,
  837.  
  838.      2137, 2342, 2342, 2342, 2113,    0, 2342, 2342, 2342, 2133,
  839.      2342, 2118, 2342, 2342, 2342, 2129, 2342,  471, 2342, 2342,
  840.       484, 2110, 2342,    0,  486, 2342,    0, 2342, 2121, 2342,
  841.       166,  168,    0, 2086, 2068, 2342, 2342,  416, 2342,  426,
  842.      2342, 2110, 2342,    0, 2342, 2109, 2088,    0, 2342, 2098,
  843.      2084,    0, 2342, 2077, 2342,    0,    0,  507, 2342, 2074,
  844.      2027,    0, 2028, 2013,    0,  517, 2342, 2041, 2011, 1986,
  845.      2342,  537, 2342, 2025, 1984,  501, 2342,  752, 2021, 1974,
  846.      1999,  503,    0, 2342, 1978,    0, 1948, 1933, 1907,    0,
  847.      2342, 1943,    0, 1913, 1888, 1884, 2342,  549, 2342, 1882,
  848.  
  849.         0, 2342, 2342, 1878,    0, 2342, 2342, 1877,  521,  757,
  850.      2342, 1874,  762,    0,  838, 2342, 1873,  527, 2342,  542,
  851.       843,  844, 1867,  849,  850,  855,  130,    0,  860,  363,
  852.         0,  549, 2342,  752,    0,  865, 2342, 1869, 1822,  767,
  853.      2342, 2342, 1842,  475,  841, 2342, 1844,  860,    0, 2342,
  854.       899,  898, 2342, 1854, 2342,    0, 1824, 2342,  773,    0,
  855.       892, 2342,  776,    0,  790, 2342,  869, 2342,    0, 2342,
  856.         0, 1817, 1808,  948,    0,  874, 2342, 2342,    0, 2342,
  857.      1828, 2342, 2342, 1817,  889, 2342, 2342, 2342,    0, 2342,
  858.       849, 2342, 1828, 2342,  876,    0, 1786, 1783,  880, 2342,
  859.  
  860.       902, 2342, 2342,    0, 2342,  906,    0, 2342, 2342,    0,
  861.      2342, 2342,    0,  996, 1771, 2342, 1006,    0, 1781, 1778,
  862.         0,  997, 2342, 1777, 1768, 1054, 2342, 1059, 2342, 1788,
  863.      1040, 1072, 1776,    0, 2342,    0, 1751, 1745, 1089,    0,
  864.      2342,    0, 1746, 1743, 1138, 1073, 2342,    0, 2342,    0,
  865.      2342, 2342, 1770, 1078, 2342, 1767, 2342, 1186,    0, 1187,
  866.       907, 1192, 1736, 1733, 1720,    0, 1197, 1713, 1709,    0,
  867.       920, 2342, 1082, 1083, 2342, 1192, 2342, 1201, 2342, 1202,
  868.      1718, 2342, 1042, 1191, 1713, 1197,    0, 1216, 2342,    0,
  869.      1701, 1690, 1681,    0, 2342, 1206, 1207, 1703, 1246, 1229,
  870.  
  871.      2342, 1232, 1687, 1674, 1233, 2342, 1236,    0,    0, 1676,
  872.      1667, 1664, 1655, 1264, 2342, 1681, 1666, 1254, 1647, 1638,
  873.         0, 2342, 1237, 1285, 1635, 1623,    0, 2342, 1286, 1289,
  874.      1290, 2342, 1293, 1627, 1628, 1620,    0, 1297, 2342, 1301,
  875.      1609, 1585,    0, 2342, 2342, 2342, 1594, 1256, 1290, 2342,
  876.      1583, 1562, 1550, 2342, 2342, 2342, 1556, 1539, 2342, 1549,
  877.      1534, 1544, 1507, 2342, 1517, 1276, 2342, 1286, 1264, 2342,
  878.      2342, 1258, 1240, 1306, 2342, 1232, 2342, 1199,  490,  980,
  879.      1185, 1170,  977,  904,  892,  872,  867,  841,  757,  501,
  880.       493,  467,  388,  374,  353, 1307,  305,  307,  276,    0,
  881.  
  882.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  883.         0, 1322,  264, 2342, 2342,  256, 1323, 1327, 1328, 1331,
  884.      2342, 1332, 1335, 2342, 1336, 2342, 2342, 2342, 1341, 1353,
  885.      1365, 1377, 1389, 1401, 1413, 1425, 1437, 1449, 1461, 1473,
  886.      1485, 1497, 1509, 1521, 1533, 1538, 1549, 1561, 1565, 1576,
  887.      1588, 1600, 1612, 1624, 1636, 1648, 1653, 1664, 1669, 1680,
  888.      1692, 1704, 1716, 1726, 1731, 1742, 1754, 1766, 1778, 1790,
  889.      1802, 1807, 1818, 1830, 1842, 1847, 1858, 1863, 1867, 1871,
  890.      1882,  283,  178, 1894, 1906, 1918, 1930, 1942, 1953, 1965,
  891.      1977, 1989, 2001, 2013, 2018, 2029, 2034, 2045, 2050, 2061,
  892.  
  893.      2073, 2085, 2097, 2109, 2121, 2126, 2137, 2142, 2153, 2158,
  894.      2162, 2166, 2177, 2189, 2194, 2198, 2209, 2221, 2233, 2245,
  895.      2257, 2269, 2281, 2293, 2305, 2317, 2329
  896.     } ;
  897.  
  898. static const short int yy_def[628] =
  899.     {   0,
  900.       528,  528,  529,  529,  530,  530,  531,  531,  528,    9,
  901.       532,  532,  528,   13,  533,  533,  534,  534,  535,  535,
  902.       536,  536,  537,  537,  528,   25,  538,  538,  533,  533,
  903.       539,  539,  540,  540,  541,  541,  528,   37,  542,  542,
  904.        37,   37,  543,  544,  528,   45,  528,   47,  528,   49,
  905.       528,   51,  545,  545,  528,  528,  528,  528,  528,  528,
  906.       546,  528,  528,  528,  547,  548,  528,  549,  528,  528,
  907.       528,  528,  528,  528,  528,  528,  550,  551,  528,  528,
  908.       528,  528,  528,  528,  552,  553,  554,  555,  528,  555,
  909.       556,  528,  528,  557,  557,  557,  556,  558,  528,  528,
  910.  
  911.       528,  528,  528,  528,  528,  559,  528,  528,  528,  528,
  912.       528,  528,  528,  528,  528,  528,  528,  551,  528,  528,
  913.       560,  561,  528,  562,  551,  528,  563,  528,  528,  528,
  914.       564,  528,  565,  565,  565,  528,  528,  566,  528,  566,
  915.       528,  528,  528,  567,  528,  528,  528,  568,  528,  528,
  916.       528,  569,  528,  528,  528,  570,  571,  571,  528,  528,
  917.       571,  572,  572,  572,  573,  528,  528,  528,  573,  573,
  918.       528,  528,  528,  528,  528,  574,  528,  528,  528,  528,
  919.       528,  574,  575,  528,  528,  576,  576,  576,  575,  577,
  920.       528,  528,  578,  578,  578,  577,  528,  528,  528,  528,
  921.  
  922.       579,  528,  528,  528,  580,  528,  528,  528,  528,  528,
  923.       528,  528,  528,  546,  528,  528,  528,  547,  528,  547,
  924.       528,  581,  528,  528,  528,  528,  528,  582,  528,  528,
  925.       583,  584,  528,  585,  549,  528,  528,  528,  528,  586,
  926.       528,  528,  528,  587,  587,  528,  528,  528,  588,  528,
  927.       588,  528,  528,  528,  528,  589,  528,  528,  590,  591,
  928.       592,  528,  590,  591,  593,  528,  593,  528,  594,  528,
  929.       595,  595,  595,  528,  596,  528,  528,  528,  597,  528,
  930.       528,  528,  528,  528,  528,  528,  528,  528,  563,  528,
  931.       564,  528,  564,  528,  598,  599,  599,  599,  600,  528,
  932.  
  933.       600,  528,  528,  601,  528,  602,  603,  528,  528,  604,
  934.       528,  528,  605,  605,  605,  528,  528,  606,  606,  606,
  935.       607,  528,  528,  607,  607,  528,  528,  528,  528,  528,
  936.       528,  528,  528,  575,  528,  608,  608,  608,  528,  609,
  937.       528,  610,  610,  610,  528,  528,  528,  611,  528,  612,
  938.       528,  528,  528,  528,  528,  528,  528,  528,  613,  613,
  939.       614,  528,  528,  528,  528,  615,  614,  528,  528,  616,
  940.       617,  528,  617,  618,  528,  618,  528,  619,  528,  619,
  941.       528,  528,  620,  620,  528,  528,  588,  588,  528,  621,
  942.       528,  595,  595,  274,  528,  622,  622,  528,  528,  598,
  943.  
  944.       528,  598,  599,  599,  602,  528,  602,  317,  623,  606,
  945.       606,  607,  607,  528,  528,  528,  528,  528,  608,  608,
  946.       339,  528,  624,  624,  610,  610,  345,  528,  625,  625,
  947.       614,  528,  614,  528,  528,  528,  615,  614,  528,  614,
  948.       528,  528,  616,  528,  528,  528,  528,  620,  620,  528,
  949.       528,  595,  595,  528,  528,  528,  599,  599,  528,  606,
  950.       606,  607,  607,  528,  608,  608,  528,  610,  610,  528,
  951.       528,  528,  528,  528,  528,  528,  528,  528,  620,  620,
  952.       528,  595,  595,  599,  599,  606,  606,  607,  607,  608,
  953.       608,  610,  610,  528,  528,  528,  528,  528,  528,  595,
  954.  
  955.       595,  599,  599,  606,  606,  607,  607,  608,  608,  610,
  956.       610,  528,  528,  528,  528,  528,  528,  626,  627,  626,
  957.       528,  626,  627,  528,  627,  528,  528,    0,  528,  528,
  958.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  959.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  960.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  961.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  962.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  963.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  964.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  965.  
  966.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  967.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  968.       528,  528,  528,  528,  528,  528,  528
  969.     } ;
  970.  
  971. static const short int yy_nxt[2392] =
  972.     {   0,
  973.        56,   57,   58,   57,   59,   57,   56,   56,   56,   60,
  974.        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
  975.        56,   56,   56,   56,   56,   56,   61,   61,   61,   61,
  976.        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
  977.        61,   61,   61,   61,   61,   61,   56,   56,   56,   56,
  978.        62,   63,   62,   64,   62,   56,   65,   56,   66,   56,
  979.        56,   56,   56,   56,   67,   56,   56,   56,   56,   56,
  980.        56,   56,   56,   56,   56,   68,   68,   68,   68,   68,
  981.        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
  982.        68,   68,   68,   68,   68,   56,   56,   56,   70,   71,
  983.  
  984.        70,   72,   70,   73,   86,   74,   87,  233,   75,   75,
  985.       234,   86,   75,   87,   76,   89,   89,   90,   90,   77,
  986.        78,   99,  100,   99,  101,   99,   99,  100,   99,  101,
  987.        99,  139,  139,  140,  140,  361,  141,  115,  142,  116,
  988.       109,  117,  110,   79,   75,   80,   81,   80,   82,   80,
  989.        73,  111,   74,   83,  112,   75,   75,  365,  118,   75,
  990.       115,   76,  116,  103,  117,  103,   77,   78,  145,   84,
  991.       146,  219,  260,  220,  261,  124,  292,  145,  147,  146,
  992.       294,  118,  143,  295,  125,  126,  113,  147,  370,  293,
  993.        79,   75,   91,   91,   92,   91,   93,   91,   91,   91,
  994.  
  995.        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
  996.        91,   91,   91,   91,   91,   91,   91,   91,   94,   94,
  997.        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
  998.        94,   94,   95,   94,   94,   94,   94,   96,   91,   91,
  999.        91,  102,  102,  103,  102,  102,  102,  102,  102,  102,
  1000.       102,  102,  102,  102,  104,  102,  102,  102,  102,  105,
  1001.       102,  102,  102,  102,  102,  102,  102,  106,  106,  106,
  1002.       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
  1003.       106,  106,  106,  106,  106,  106,  106,  102,  102,  102,
  1004.       109,  103,  110,  366,  103,  247,  256,  103,  149,  103,
  1005.  
  1006.       150,  111,  519,  120,  112,  207,  120,  208,  151,  124,
  1007.       518,  149,  121,  150,  122,  121,  516,  122,  125,  126,
  1008.       257,  151,  266,  248,  267,  515,  209,  210,  211,  210,
  1009.       212,  210,  268,  258,  267,  514,  113,  127,  127,  128,
  1010.       127,  129,  127,  130,  127,  127,  127,  131,  127,  127,
  1011.       127,  127,  132,  127,  127,  127,  127,  127,  127,  127,
  1012.       127,  127,  127,  133,  133,  133,  133,  133,  133,  133,
  1013.       133,  133,  133,  133,  133,  133,  133,  134,  133,  133,
  1014.       133,  133,  135,  136,  127,  137,  141,  153,  142,  154,
  1015.       153,  155,  154,  513,  155,  172,  173,  172,  174,  172,
  1016.  
  1017.       207,  368,  208,  175,  369,  512,  242,  242,  156,  242,
  1018.       242,  156,  215,  216,  215,  217,  215,  176,  300,  511,
  1019.       301,  209,  259,  264,  259,  261,  259,  276,  302,  276,
  1020.       301,  276,  143,  157,  158,  159,  158,  160,  158,  157,
  1021.       157,  157,  161,  157,  157,  157,  157,  157,  157,  157,
  1022.       157,  157,  157,  157,  157,  157,  157,  157,  157,  162,
  1023.       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
  1024.       162,  162,  162,  163,  162,  162,  162,  162,  164,  157,
  1025.       157,  157,  166,  167,  166,  168,  166,  247,  166,  167,
  1026.       166,  168,  166,  236,  237,  236,  238,  236,  245,  382,
  1027.  
  1028.       284,  239,  247,  252,  253,  252,  254,  252,  314,  510,
  1029.       314,  239,  314,  245,  382,  248,  315,  330,  322,  330,
  1030.       322,  169,  322,  352,  509,  353,  170,  169,  285,  219,
  1031.       248,  220,  170,  178,  173,  178,  179,  178,  326,  240,
  1032.       326,  180,  326,  508,  357,  331,  220,  331,  181,  240,
  1033.       346,  372,  346,  373,  346,  182,  183,  183,  184,  183,
  1034.       185,  183,  183,  183,  183,  183,  183,  183,  183,  183,
  1035.       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
  1036.       183,  183,  186,  186,  186,  186,  186,  186,  186,  186,
  1037.       186,  186,  186,  186,  186,  186,  187,  186,  186,  186,
  1038.  
  1039.       186,  188,  183,  183,  183,  190,  190,  191,  190,  192,
  1040.       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
  1041.       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
  1042.       190,  193,  193,  193,  193,  193,  193,  193,  193,  193,
  1043.       193,  193,  193,  193,  193,  194,  193,  193,  193,  193,
  1044.       195,  190,  190,  190,  197,  198,  199,  198,  200,  198,
  1045.       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
  1046.       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
  1047.       201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
  1048.       201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
  1049.  
  1050.       197,  197,  197,  202,  202,  203,  202,  204,  202,  202,
  1051.       202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
  1052.       202,  202,  202,  202,  202,  202,  202,  202,  202,  205,
  1053.       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
  1054.       205,  205,  205,  205,  205,  205,  205,  205,  205,  202,
  1055.       202,  202,  222,  332,  375,  332,  376,  332,  210,  211,
  1056.       210,  212,  210,  354,  355,  354,  356,  354,  333,  379,
  1057.       223,  380,  224,  225,  223,  260,  226,  261,  260,  223,
  1058.       261,  227,  223,  224,  228,  229,  230,  231,  507,  232,
  1059.       249,  249,  266,  249,  267,  249,  249,  249,  249,  249,
  1060.  
  1061.       249,  249,  249,  249,  249,  249,  250,  249,  249,  249,
  1062.       249,  249,  249,  249,  249,  249,  251,  251,  251,  251,
  1063.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1064.       251,  251,  251,  251,  251,  251,  249,  249,  249,  215,
  1065.       216,  215,  217,  215,  358,  360,  358,  360,  358,  360,
  1066.       362,  358,  362,  358,  362,  358,  358,  383,  358,  292,
  1067.       358,  354,  355,  354,  356,  367,  236,  237,  236,  238,
  1068.       236,  268,  293,  267,  239,  276,  386,  276,  401,  276,
  1069.       402,  363,  300,  506,  301,  384,  364,  386,  386,  386,
  1070.       386,  386,  386,  259,  264,  259,  261,  259,  505,  252,
  1071.  
  1072.       253,  252,  254,  252,  302,  399,  301,  239,  406,  432,
  1073.       407,  433,  240,  388,  504,  388,  399,  399,  399,  399,
  1074.       399,  399,  372,  503,  373,  388,  388,  388,  388,  388,
  1075.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1076.       388,  388,  388,  388,  388,  240,  502,  389,  394,  394,
  1077.       395,  394,  396,  394,  394,  394,  394,  394,  394,  394,
  1078.       394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
  1079.       394,  394,  394,  394,  397,  397,  397,  397,  397,  397,
  1080.       397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
  1081.       397,  397,  397,  397,  394,  394,  394,  314,  322,  314,
  1082.  
  1083.       322,  314,  322,  245,  382,  315,  408,  408,  501,  408,
  1084.       409,  408,  408,  408,  408,  408,  408,  408,  408,  408,
  1085.       408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
  1086.       408,  408,  409,  409,  409,  409,  409,  409,  409,  409,
  1087.       409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
  1088.       409,  409,  408,  408,  408,  326,  418,  326,  448,  326,
  1089.       414,  415,  414,  416,  414,  245,  382,  418,  418,  418,
  1090.       418,  418,  418,  332,  346,  332,  346,  332,  346,  354,
  1091.       355,  354,  356,  354,  444,  375,  373,  376,  333,  421,
  1092.       421,  422,  421,  423,  421,  421,  421,  421,  421,  421,
  1093.  
  1094.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  1095.       421,  421,  421,  421,  421,  424,  424,  424,  424,  424,
  1096.       424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
  1097.       424,  424,  424,  424,  424,  421,  421,  421,  427,  427,
  1098.       428,  427,  429,  427,  427,  427,  427,  427,  427,  427,
  1099.       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
  1100.       427,  427,  427,  427,  430,  430,  430,  430,  430,  430,
  1101.       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
  1102.       430,  430,  430,  430,  427,  427,  427,  358,  360,  358,
  1103.       360,  358,  360,  362,  445,  362,  376,  362,  438,  439,
  1104.  
  1105.       438,  440,  438,  379,  446,  380,  380,  449,  454,  395,
  1106.       396,  396,  500,  450,  245,  382,  499,  498,  449,  449,
  1107.       449,  449,  449,  449,  450,  450,  450,  450,  450,  450,
  1108.       388,  401,  388,  402,  456,  406,  402,  407,  459,  467,
  1109.       407,  423,  388,  388,  388,  388,  388,  388,  388,  388,
  1110.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1111.       388,  388,  455,  497,  389,  414,  415,  414,  416,  414,
  1112.       464,  495,  479,  455,  455,  455,  455,  455,  455,  245,
  1113.       382,  464,  464,  464,  464,  464,  464,  422,  470,  423,
  1114.       429,  428,  432,  429,  433,  471,  494,  433,  438,  439,
  1115.  
  1116.       438,  440,  438,  475,  493,  433,  480,  496,  496,  496,
  1117.       496,  496,  496,  245,  382,  492,  491,  480,  480,  480,
  1118.       480,  480,  480,  517,  517,  517,  517,  517,  517,  521,
  1119.       524,  522,  525,  521,  526,  522,  522,  524,  527,  525,
  1120.       525,   69,   69,   69,   69,   69,   69,   69,   69,   69,
  1121.        69,   69,   69,   85,   85,   85,   85,   85,   85,   85,
  1122.        85,   85,   85,   85,   85,   88,   88,   88,   88,   88,
  1123.        88,   88,   88,   88,   88,   88,   88,   98,   98,   98,
  1124.        98,   98,   98,   98,   98,   98,   98,   98,   98,  103,
  1125.       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
  1126.  
  1127.       103,  108,  108,  108,  108,  108,  108,  108,  108,  108,
  1128.       108,  108,  108,  114,  114,  114,  114,  114,  114,  114,
  1129.       114,  114,  114,  114,  114,  119,  119,  119,  119,  119,
  1130.       119,  119,  119,  119,  119,  119,  119,  123,  123,  123,
  1131.       123,  123,  123,  123,  123,  123,  123,  123,  123,  138,
  1132.       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
  1133.       138,  144,  144,  144,  144,  144,  144,  144,  144,  144,
  1134.       144,  144,  144,  148,  148,  148,  148,  148,  148,  148,
  1135.       148,  148,  148,  148,  148,  152,  152,  152,  152,  152,
  1136.       152,  152,  152,  152,  152,  152,  152,  165,  165,  165,
  1137.  
  1138.       165,  165,  165,  165,  165,  165,  165,  165,  165,  171,
  1139.       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
  1140.       171,  177,  177,  177,  177,  177,  177,  177,  177,  177,
  1141.       177,  177,  177,  206,  206,  206,  206,  206,  206,  206,
  1142.       206,  206,  206,  206,  206,  214,  490,  489,  214,  218,
  1143.       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
  1144.       218,  221,  221,  221,  221,  221,  221,  221,  221,  221,
  1145.       221,  221,  235,  488,  487,  235,  244,  244,  486,  485,
  1146.       244,  244,  244,  244,  244,  484,  244,  244,  246,  246,
  1147.       483,  482,  246,  246,  246,  246,  246,  246,  246,  246,
  1148.  
  1149.       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
  1150.       259,  259,  262,  481,  478,  477,  262,  262,  262,  262,
  1151.       262,  262,  262,  262,  263,  263,  263,  263,  263,  263,
  1152.       263,  263,  263,  263,  263,  263,  265,  265,  265,  265,
  1153.       265,  265,  265,  265,  265,  265,  265,  265,  269,  269,
  1154.       476,  474,  269,  269,  269,  269,  269,  269,  473,  269,
  1155.       271,  472,  469,  271,  275,  275,  468,  275,  275,  275,
  1156.       275,  275,  275,  275,  275,  275,  279,  466,  465,  279,
  1157.       283,  283,  329,  415,  283,  283,  283,  283,  283,  283,
  1158.       283,  283,  286,  286,  463,  462,  286,  286,  286,  286,
  1159.  
  1160.       286,  286,  286,  286,  288,  288,  461,  460,  288,  288,
  1161.       288,  288,  288,  458,  288,  288,  289,  289,  457,  283,
  1162.       453,  452,  289,  289,  289,  289,  291,  291,  451,  246,
  1163.       291,  291,  291,  291,  291,  291,  291,  291,  296,  447,
  1164.       442,  296,  299,  299,  299,  299,  299,  299,  299,  299,
  1165.       299,  299,  299,  299,  304,  304,  441,  436,  304,  304,
  1166.       435,  304,  304,  304,  304,  304,  307,  307,  434,  355,
  1167.       307,  307,  352,  307,  307,  307,  307,  307,  310,  310,
  1168.       426,  425,  420,  310,  310,  310,  419,  310,  310,  310,
  1169.       312,  312,  333,  312,  312,  312,  312,  312,  312,  312,
  1170.  
  1171.       312,  312,  313,  313,  417,  413,  313,  313,  313,  313,
  1172.       313,  313,  412,  313,  318,  411,  410,  318,  321,  317,
  1173.       404,  403,  321,  321,  321,  321,  321,  321,  321,  321,
  1174.       329,  329,  291,  398,  329,  329,  329,  329,  329,  329,
  1175.       329,  329,  334,  334,  281,  393,  334,  334,  334,  334,
  1176.       334,  334,  392,  334,  336,  391,  253,  336,  340,  340,
  1177.       385,  381,  340,  340,  340,  340,  340,  340,  377,  340,
  1178.       342,  237,  361,  342,  348,  216,  211,  348,  350,  351,
  1179.       349,  350,  359,  359,  347,  359,  359,  359,  359,  359,
  1180.       359,  359,  359,  359,  371,  371,  371,  371,  371,  371,
  1181.  
  1182.       371,  371,  371,  371,  371,  371,  374,  374,  374,  374,
  1183.       374,  374,  374,  374,  374,  374,  374,  374,  378,  378,
  1184.       378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
  1185.       244,  244,  345,  344,  244,  244,  244,  244,  244,  244,
  1186.       244,  244,  387,  387,  343,  341,  387,  387,  387,  387,
  1187.       387,  387,  387,  390,  390,  339,  390,  390,  390,  390,
  1188.       390,  390,  390,  390,  390,  259,  259,  259,  259,  259,
  1189.       259,  259,  259,  259,  259,  259,  259,  262,  338,  337,
  1190.       335,  262,  262,  262,  262,  262,  262,  262,  262,  263,
  1191.       263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
  1192.  
  1193.       263,  265,  265,  265,  265,  265,  265,  265,  265,  265,
  1194.       265,  265,  265,  269,  269,  333,  328,  269,  269,  269,
  1195.       269,  269,  269,  327,  269,  271,  328,  327,  271,  275,
  1196.       275,  325,  275,  275,  275,  275,  275,  275,  275,  275,
  1197.       275,  279,  324,  323,  279,  400,  400,  400,  400,  400,
  1198.       400,  400,  400,  400,  400,  400,  400,  296,  320,  319,
  1199.       296,  299,  299,  299,  299,  299,  299,  299,  299,  299,
  1200.       299,  299,  299,  304,  304,  317,  316,  304,  304,  311,
  1201.       304,  304,  304,  304,  304,  405,  405,  405,  405,  405,
  1202.       405,  405,  405,  405,  405,  405,  405,  307,  307,  309,
  1203.  
  1204.       308,  307,  307,  306,  307,  307,  307,  307,  307,  310,
  1205.       310,  305,  303,  298,  310,  310,  310,  297,  310,  310,
  1206.       310,  313,  313,  290,  287,  313,  313,  313,  313,  313,
  1207.       313,  282,  313,  318,  281,  280,  318,  321,  278,  277,
  1208.       274,  321,  321,  321,  321,  321,  321,  321,  321,  336,
  1209.       273,  272,  336,  340,  340,  270,  255,  340,  340,  340,
  1210.       340,  340,  340,  245,  340,  342,  243,  241,  342,  348,
  1211.       216,  213,  348,  350,  211,  528,  350,  359,  359,  196,
  1212.       359,  359,  359,  359,  359,  359,  359,  359,  359,  431,
  1213.       431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
  1214.  
  1215.       431,  437,  189,  107,  437,  443,  107,   97,  443,  371,
  1216.       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
  1217.       371,  374,  374,  374,  374,  374,  374,  374,  374,  374,
  1218.       374,  374,  374,  378,  378,  378,  378,  378,  378,  378,
  1219.       378,  378,  378,  378,  378,  244,  244,  528,  528,  244,
  1220.       244,  244,  244,  244,  244,  244,  244,  390,  390,  528,
  1221.       390,  390,  390,  390,  390,  390,  390,  390,  390,  397,
  1222.       397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
  1223.       397,  409,  409,  528,  409,  409,  409,  409,  409,  409,
  1224.       409,  409,  409,  424,  424,  424,  424,  424,  424,  424,
  1225.  
  1226.       424,  424,  424,  424,  424,  430,  430,  430,  430,  430,
  1227.       430,  430,  430,  430,  430,  430,  430,  520,  520,  520,
  1228.       520,  520,  520,  520,  520,  520,  520,  520,  520,  523,
  1229.       523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
  1230.       523,   55,  528,  528,  528,  528,  528,  528,  528,  528,
  1231.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1232.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1233.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1234.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1235.       528
  1236.  
  1237.     } ;
  1238.  
  1239. static const short int yy_chk[2392] =
  1240.     {   0,
  1241.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1242.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1243.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1244.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1245.         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
  1246.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1247.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1248.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1249.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1250.         2,    2,    2,    2,    2,    2,    2,    2,    3,    3,
  1251.  
  1252.         3,    3,    3,    3,    5,    3,    5,   67,    3,    3,
  1253.        67,    6,    3,    6,    3,    7,    8,    7,    8,    3,
  1254.         3,   11,   11,   11,   11,   11,   12,   12,   12,   12,
  1255.        12,   27,   28,   27,   28,  227,   29,   19,   29,   19,
  1256.        17,   19,   17,    3,    3,    4,    4,    4,    4,    4,
  1257.         4,   17,    4,    4,   17,    4,    4,  227,   19,    4,
  1258.        20,    4,   20,   23,   20,   23,    4,    4,   31,    4,
  1259.        31,   65,   85,   65,   85,   23,  131,   32,   31,   32,
  1260.       132,   20,   29,  132,   23,   23,   17,   32,  583,  131,
  1261.         4,    4,    9,    9,    9,    9,    9,    9,    9,    9,
  1262.  
  1263.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1264.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1265.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1266.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1267.         9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1268.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1269.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1270.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1271.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1272.        18,   21,   18,  582,   22,   78,   83,   24,   33,   24,
  1273.  
  1274.        33,   18,  516,   21,   18,   53,   22,   53,   33,   24,
  1275.       513,   34,   21,   34,   21,   22,  499,   22,   24,   24,
  1276.        83,   34,   88,   78,   88,  498,   53,   57,   57,   57,
  1277.        57,   57,   90,   83,   90,  497,   18,   25,   25,   25,
  1278.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1279.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1280.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1281.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1282.        25,   25,   25,   25,   25,   25,   30,   35,   30,   35,
  1283.        36,   35,   36,  495,   36,   43,   43,   43,   43,   43,
  1284.  
  1285.        54,  230,   54,   43,  230,  494,   74,   74,   35,   74,
  1286.        74,   36,   62,   62,   62,   62,   62,   43,  138,  493,
  1287.       138,   54,   87,   87,   87,   87,   87,   99,  140,   99,
  1288.       140,   99,   30,   37,   37,   37,   37,   37,   37,   37,
  1289.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1290.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1291.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1292.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1293.        37,   37,   39,   39,   39,   39,   39,  118,   40,   40,
  1294.        40,   40,   40,   70,   70,   70,   70,   70,  244,  244,
  1295.  
  1296.       121,   70,  125,   80,   80,   80,   80,   80,  158,  492,
  1297.       158,   80,  158,  479,  479,  118,  158,  176,  166,  182,
  1298.       166,   39,  166,  209,  491,  209,   39,   40,  121,  218,
  1299.       125,  218,   40,   44,   44,   44,   44,   44,  172,   70,
  1300.       172,   44,  172,  490,  220,  176,  220,  182,   44,   80,
  1301.       198,  232,  198,  232,  198,   44,   45,   45,   45,   45,
  1302.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1303.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1304.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1305.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1306.  
  1307.        45,   45,   45,   45,   45,   47,   47,   47,   47,   47,
  1308.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1309.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1310.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1311.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1312.        47,   47,   47,   47,   49,   49,   49,   49,   49,   49,
  1313.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1314.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1315.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1316.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1317.  
  1318.        49,   49,   49,   51,   51,   51,   51,   51,   51,   51,
  1319.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1320.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1321.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1322.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1323.        51,   51,   66,  178,  234,  178,  234,  178,  210,  210,
  1324.       210,  210,  210,  213,  213,  213,  213,  213,  178,  240,
  1325.        66,  240,   66,   66,   66,  259,   66,  259,  263,   66,
  1326.       263,   66,   66,   66,   66,   66,   66,   66,  489,   66,
  1327.        79,   79,  265,   79,  265,   79,   79,   79,   79,   79,
  1328.  
  1329.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1330.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1331.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1332.        79,   79,   79,   79,   79,   79,   79,   79,   79,  215,
  1333.       215,  215,  215,  215,  221,  222,  221,  222,  221,  222,
  1334.       224,  225,  224,  225,  224,  225,  226,  245,  226,  291,
  1335.       226,  229,  229,  229,  229,  229,  236,  236,  236,  236,
  1336.       236,  267,  291,  267,  236,  276,  248,  276,  295,  276,
  1337.       295,  225,  299,  488,  299,  245,  226,  248,  248,  248,
  1338.       248,  248,  248,  261,  261,  261,  261,  261,  487,  252,
  1339.  
  1340.       252,  252,  252,  252,  301,  285,  301,  252,  306,  361,
  1341.       306,  361,  236,  251,  486,  251,  285,  285,  285,  285,
  1342.       285,  285,  371,  485,  371,  251,  251,  251,  251,  251,
  1343.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1344.       251,  251,  251,  251,  251,  252,  484,  251,  274,  274,
  1345.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1346.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1347.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1348.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1349.       274,  274,  274,  274,  274,  274,  274,  314,  322,  314,
  1350.  
  1351.       322,  314,  322,  480,  480,  314,  317,  317,  483,  317,
  1352.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1353.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1354.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1355.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1356.       317,  317,  317,  317,  317,  326,  331,  326,  383,  326,
  1357.       328,  328,  328,  328,  328,  383,  383,  331,  331,  331,
  1358.       331,  331,  331,  332,  346,  332,  346,  332,  346,  354,
  1359.       354,  354,  354,  354,  373,  374,  373,  374,  332,  339,
  1360.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1361.  
  1362.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1363.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1364.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1365.       339,  339,  339,  339,  339,  339,  339,  339,  345,  345,
  1366.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1367.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1368.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1369.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1370.       345,  345,  345,  345,  345,  345,  345,  358,  360,  358,
  1371.       360,  358,  360,  362,  376,  362,  376,  362,  367,  367,
  1372.  
  1373.       367,  367,  367,  378,  380,  378,  380,  384,  396,  397,
  1374.       396,  397,  482,  386,  384,  384,  481,  478,  384,  384,
  1375.       384,  384,  384,  384,  386,  386,  386,  386,  386,  386,
  1376.       388,  400,  388,  400,  402,  405,  402,  405,  407,  423,
  1377.       407,  423,  388,  388,  388,  388,  388,  388,  388,  388,
  1378.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1379.       388,  388,  399,  476,  388,  414,  414,  414,  414,  414,
  1380.       418,  473,  448,  399,  399,  399,  399,  399,  399,  448,
  1381.       448,  418,  418,  418,  418,  418,  418,  424,  429,  424,
  1382.       429,  430,  431,  430,  431,  433,  472,  433,  438,  438,
  1383.  
  1384.       438,  438,  438,  440,  469,  440,  449,  474,  496,  474,
  1385.       496,  474,  496,  449,  449,  468,  466,  449,  449,  449,
  1386.       449,  449,  449,  512,  517,  512,  517,  512,  517,  518,
  1387.       519,  518,  519,  520,  522,  520,  522,  523,  525,  523,
  1388.       525,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1389.       529,  529,  529,  530,  530,  530,  530,  530,  530,  530,
  1390.       530,  530,  530,  530,  530,  531,  531,  531,  531,  531,
  1391.       531,  531,  531,  531,  531,  531,  531,  532,  532,  532,
  1392.       532,  532,  532,  532,  532,  532,  532,  532,  532,  533,
  1393.       533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
  1394.  
  1395.       533,  534,  534,  534,  534,  534,  534,  534,  534,  534,
  1396.       534,  534,  534,  535,  535,  535,  535,  535,  535,  535,
  1397.       535,  535,  535,  535,  535,  536,  536,  536,  536,  536,
  1398.       536,  536,  536,  536,  536,  536,  536,  537,  537,  537,
  1399.       537,  537,  537,  537,  537,  537,  537,  537,  537,  538,
  1400.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  1401.       538,  539,  539,  539,  539,  539,  539,  539,  539,  539,
  1402.       539,  539,  539,  540,  540,  540,  540,  540,  540,  540,
  1403.       540,  540,  540,  540,  540,  541,  541,  541,  541,  541,
  1404.       541,  541,  541,  541,  541,  541,  541,  542,  542,  542,
  1405.  
  1406.       542,  542,  542,  542,  542,  542,  542,  542,  542,  543,
  1407.       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
  1408.       543,  544,  544,  544,  544,  544,  544,  544,  544,  544,
  1409.       544,  544,  544,  545,  545,  545,  545,  545,  545,  545,
  1410.       545,  545,  545,  545,  545,  546,  465,  463,  546,  547,
  1411.       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
  1412.       547,  548,  548,  548,  548,  548,  548,  548,  548,  548,
  1413.       548,  548,  549,  462,  461,  549,  550,  550,  460,  458,
  1414.       550,  550,  550,  550,  550,  457,  550,  550,  551,  551,
  1415.       453,  452,  551,  551,  551,  551,  551,  551,  551,  551,
  1416.  
  1417.       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
  1418.       552,  552,  553,  451,  447,  442,  553,  553,  553,  553,
  1419.       553,  553,  553,  553,  554,  554,  554,  554,  554,  554,
  1420.       554,  554,  554,  554,  554,  554,  555,  555,  555,  555,
  1421.       555,  555,  555,  555,  555,  555,  555,  555,  556,  556,
  1422.       441,  436,  556,  556,  556,  556,  556,  556,  435,  556,
  1423.       557,  434,  426,  557,  558,  558,  425,  558,  558,  558,
  1424.       558,  558,  558,  558,  558,  558,  559,  420,  419,  559,
  1425.       560,  560,  417,  416,  560,  560,  560,  560,  560,  560,
  1426.       560,  560,  561,  561,  413,  412,  561,  561,  561,  561,
  1427.  
  1428.       561,  561,  561,  561,  562,  562,  411,  410,  562,  562,
  1429.       562,  562,  562,  404,  562,  562,  563,  563,  403,  398,
  1430.       393,  392,  563,  563,  563,  563,  564,  564,  391,  385,
  1431.       564,  564,  564,  564,  564,  564,  564,  564,  565,  381,
  1432.       369,  565,  566,  566,  566,  566,  566,  566,  566,  566,
  1433.       566,  566,  566,  566,  567,  567,  368,  365,  567,  567,
  1434.       364,  567,  567,  567,  567,  567,  568,  568,  363,  356,
  1435.       568,  568,  353,  568,  568,  568,  568,  568,  569,  569,
  1436.       344,  343,  338,  569,  569,  569,  337,  569,  569,  569,
  1437.       570,  570,  333,  570,  570,  570,  570,  570,  570,  570,
  1438.  
  1439.       570,  570,  571,  571,  330,  325,  571,  571,  571,  571,
  1440.       571,  571,  324,  571,  572,  320,  319,  572,  573,  315,
  1441.       298,  297,  573,  573,  573,  573,  573,  573,  573,  573,
  1442.       574,  574,  293,  284,  574,  574,  574,  574,  574,  574,
  1443.       574,  574,  575,  575,  281,  273,  575,  575,  575,  575,
  1444.       575,  575,  272,  575,  576,  257,  254,  576,  577,  577,
  1445.       247,  243,  577,  577,  577,  577,  577,  577,  239,  577,
  1446.       578,  238,  223,  578,  579,  217,  212,  579,  580,  208,
  1447.       204,  580,  581,  581,  200,  581,  581,  581,  581,  581,
  1448.       581,  581,  581,  581,  584,  584,  584,  584,  584,  584,
  1449.  
  1450.       584,  584,  584,  584,  584,  584,  585,  585,  585,  585,
  1451.       585,  585,  585,  585,  585,  585,  585,  585,  586,  586,
  1452.       586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
  1453.       587,  587,  196,  195,  587,  587,  587,  587,  587,  587,
  1454.       587,  587,  588,  588,  194,  192,  588,  588,  588,  588,
  1455.       588,  588,  588,  589,  589,  189,  589,  589,  589,  589,
  1456.       589,  589,  589,  589,  589,  590,  590,  590,  590,  590,
  1457.       590,  590,  590,  590,  590,  590,  590,  591,  188,  187,
  1458.       185,  591,  591,  591,  591,  591,  591,  591,  591,  592,
  1459.       592,  592,  592,  592,  592,  592,  592,  592,  592,  592,
  1460.  
  1461.       592,  593,  593,  593,  593,  593,  593,  593,  593,  593,
  1462.       593,  593,  593,  594,  594,  181,  180,  594,  594,  594,
  1463.       594,  594,  594,  179,  594,  595,  175,  174,  595,  596,
  1464.       596,  170,  596,  596,  596,  596,  596,  596,  596,  596,
  1465.       596,  597,  169,  168,  597,  598,  598,  598,  598,  598,
  1466.       598,  598,  598,  598,  598,  598,  598,  599,  164,  163,
  1467.       599,  600,  600,  600,  600,  600,  600,  600,  600,  600,
  1468.       600,  600,  600,  601,  601,  161,  160,  601,  601,  154,
  1469.       601,  601,  601,  601,  601,  602,  602,  602,  602,  602,
  1470.       602,  602,  602,  602,  602,  602,  602,  603,  603,  151,
  1471.  
  1472.       150,  603,  603,  147,  603,  603,  603,  603,  603,  604,
  1473.       604,  146,  142,  135,  604,  604,  604,  134,  604,  604,
  1474.       604,  605,  605,  129,  122,  605,  605,  605,  605,  605,
  1475.       605,  116,  605,  606,  112,  110,  606,  607,  105,  101,
  1476.        97,  607,  607,  607,  607,  607,  607,  607,  607,  608,
  1477.        96,   95,  608,  609,  609,   93,   82,  609,  609,  609,
  1478.       609,  609,  609,   77,  609,  610,   76,   72,  610,  611,
  1479.        64,   60,  611,  612,   59,   55,  612,  613,  613,   48,
  1480.       613,  613,  613,  613,  613,  613,  613,  613,  613,  614,
  1481.       614,  614,  614,  614,  614,  614,  614,  614,  614,  614,
  1482.  
  1483.       614,  615,   46,   16,  615,  616,   15,   10,  616,  617,
  1484.       617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
  1485.       617,  618,  618,  618,  618,  618,  618,  618,  618,  618,
  1486.       618,  618,  618,  619,  619,  619,  619,  619,  619,  619,
  1487.       619,  619,  619,  619,  619,  620,  620,    0,    0,  620,
  1488.       620,  620,  620,  620,  620,  620,  620,  621,  621,    0,
  1489.       621,  621,  621,  621,  621,  621,  621,  621,  621,  622,
  1490.       622,  622,  622,  622,  622,  622,  622,  622,  622,  622,
  1491.       622,  623,  623,    0,  623,  623,  623,  623,  623,  623,
  1492.       623,  623,  623,  624,  624,  624,  624,  624,  624,  624,
  1493.  
  1494.       624,  624,  624,  624,  624,  625,  625,  625,  625,  625,
  1495.       625,  625,  625,  625,  625,  625,  625,  626,  626,  626,
  1496.       626,  626,  626,  626,  626,  626,  626,  626,  626,  627,
  1497.       627,  627,  627,  627,  627,  627,  627,  627,  627,  627,
  1498.       627,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1499.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1500.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1501.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1502.       528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
  1503.       528
  1504.  
  1505.     } ;
  1506.  
  1507. static yy_state_type yy_last_accepting_state;
  1508. static YY_CHAR *yy_last_accepting_cpos;
  1509.  
  1510. static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
  1511. static YY_CHAR *yy_full_match;
  1512. static int yy_lp;
  1513. static int yy_looking_for_trail_begin = 0;
  1514. static int yy_full_lp;
  1515. static int *yy_full_state;
  1516. #define YY_TRAILING_MASK 0x2000
  1517. #define YY_TRAILING_HEAD_MASK 0x4000
  1518. #define REJECT \
  1519. { \
  1520. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  1521. yy_cp = yy_full_match; /* restore poss. backed-over text */ \
  1522. yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
  1523. yy_state_ptr = yy_full_state; /* restore orig. state */ \
  1524. yy_current_state = *yy_state_ptr; /* restore curr. state */ \
  1525. ++yy_lp; \
  1526. goto find_rule; \
  1527. }
  1528. #define yymore() yymore_used_but_not_detected
  1529. #define YY_MORE_ADJ 0
  1530. # line 337 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1531. #ifndef YY_USE_CLASS
  1532. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1533. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1534. #else
  1535. #define yy_get_previous_state() ((yy_state_type)(yy_get_previous_state_()))
  1536. #define yy_try_NUL_trans(c) ((yy_state_type)(yy_try_NUL_trans_(c)))
  1537. #endif
  1538.  
  1539. #ifndef YY_USE_CLASS
  1540. YY_DECL
  1541. #else
  1542. YY_lex_LEXRETURN lex::YY_lex_LEX ( YY_lex_LEXPARAM)
  1543.  
  1544. #endif
  1545.     {
  1546.     register yy_state_type yy_current_state;
  1547.     register YY_CHAR *yy_cp, *yy_bp;
  1548.     register int yy_act;
  1549.  
  1550. /* % user's declarations go here */ 
  1551.  
  1552.     static int bracelevel, didadef;
  1553.     int i, indented_code, checking_used, new_xlation;
  1554.     int doing_codeblock = false;
  1555.     Char nmdef[MAXLINE], myesc();
  1556.  
  1557. /* % end of prolog */ 
  1558. # line 357 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1559.  
  1560.     if ( yy_init )
  1561.     {
  1562.          
  1563.          {
  1564.      YY_USER_INIT;
  1565.          }
  1566.     if ( ! yy_start )
  1567.         yy_start = 1;    /* first start state */
  1568.  
  1569.     if ( ! yy___in )
  1570.         yy___in = stdin;
  1571.  
  1572.     if ( ! yy___out )
  1573.         yy___out = stdout;
  1574.  
  1575.     if ( yy_current_buffer )
  1576.         yy_init_buffer( yy_current_buffer, yy___in );
  1577.     else
  1578.         yy_current_buffer = yy_create_buffer( yy___in, YY_BUF_SIZE );
  1579.  
  1580.     yy_load_buffer_state();
  1581.         yy_init=0;
  1582.     }
  1583.  
  1584.     while ( 1 )        /* loops until end-of-file is reached */
  1585.     {
  1586. /* % yymore()-related code goes here */ 
  1587. # line 385 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1588.     yy_cp = yy_c_buf_p;
  1589.  
  1590.     /* support of yy___text */
  1591.     *yy_cp = yy_hold_char;
  1592.  
  1593.     /* yy_bp points to the position in yy_ch_buf of the start of the
  1594.      * current run.
  1595.      */
  1596.     yy_bp = yy_cp;
  1597.  
  1598. /* % code to set up and find next match goes here */ 
  1599.     yy_current_state = yy_start;
  1600.     if ( yy_bp[-1] == '\n' )
  1601.         ++yy_current_state;
  1602.     yy_state_ptr = yy_state_buf;
  1603.     *yy_state_ptr++ = yy_current_state;
  1604. yy_match:
  1605.     do
  1606.         {
  1607.         register YY_CHAR yy_c = yy_ec[*yy_cp];
  1608.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1609.         {
  1610.         yy_current_state = yy_def[yy_current_state];
  1611.         if ( yy_current_state >= 529 )
  1612.             yy_c = yy_meta[yy_c];
  1613.         }
  1614.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1615.         *yy_state_ptr++ = yy_current_state;
  1616.         ++yy_cp;
  1617.         }
  1618.     while ( yy_current_state != 528 );
  1619. # line 396 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1620.  
  1621. yy_find_action:
  1622. /* % code to find the action number goes here */ 
  1623.     yy_current_state = *--yy_state_ptr;
  1624.     yy_lp = yy_accept[yy_current_state];
  1625. find_rule: /* we branch to this label when backtracking */
  1626.     for ( ; ; ) /* until we find what rule we matched */
  1627.         {
  1628.         if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
  1629.         {
  1630.         yy_act = yy_acclist[yy_lp];
  1631.         if ( yy_act & YY_TRAILING_HEAD_MASK ||
  1632.              yy_looking_for_trail_begin )
  1633.             {
  1634.             if ( yy_act == yy_looking_for_trail_begin )
  1635.             {
  1636.             yy_looking_for_trail_begin = 0;
  1637.             yy_act &= ~YY_TRAILING_HEAD_MASK;
  1638.             break;
  1639.             }
  1640.             }
  1641.         else if ( yy_act & YY_TRAILING_MASK )
  1642.             {
  1643.             yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
  1644.             yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
  1645.             }
  1646.         else
  1647.             {
  1648.             yy_full_match = yy_cp;
  1649.             yy_full_state = yy_state_ptr;
  1650.             yy_full_lp = yy_lp;
  1651.             break;
  1652.             }
  1653.         ++yy_lp;
  1654.         goto find_rule;
  1655.         }
  1656.         --yy_cp;
  1657.         yy_current_state = *--yy_state_ptr;
  1658.         yy_lp = yy_accept[yy_current_state];
  1659.         }
  1660. # line 399 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1661.  
  1662.     YY_DO_BEFORE_ACTION;
  1663.     YY_USER_ACTION;
  1664.  
  1665. do_action:    /* this label is used only to access EOF actions */
  1666.  
  1667. /* % debug code goes here */ 
  1668. # line 406 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1669.  
  1670.     switch ( yy_act )
  1671.         {
  1672. /* % actions go here */ 
  1673. case 1:
  1674. #line 92 "scan.l"
  1675. indented_code = true; BEGIN(CODEBLOCK);
  1676.     YY_BREAK
  1677. case 2:
  1678. #line 93 "scan.l"
  1679. ++linenum; /* treat as a comment */
  1680.     YY_BREAK
  1681. case 3:
  1682. #line 94 "scan.l"
  1683. ++linenum;  /* treat as a c++ comment */
  1684.     YY_BREAK
  1685. case 4:
  1686. #line 95 "scan.l"
  1687. ECHO; BEGIN(C_COMMENT);
  1688.     YY_BREAK
  1689. case 5:
  1690. #line 96 "scan.l"
  1691. return ( SCDECL );
  1692.     YY_BREAK
  1693. case 6:
  1694. #line 97 "scan.l"
  1695. return ( XSCDECL );
  1696.     YY_BREAK
  1697. case 7:
  1698. #line 98 "scan.l"
  1699. BEGIN(NAME_DECLARE);
  1700.     YY_BREAK
  1701. case 8:
  1702. #line 99 "scan.l"
  1703. BEGIN(DEFINE_DECLARE);
  1704.     YY_BREAK
  1705. case 9:
  1706. #line 102 "scan.l"
  1707. {
  1708.             ++linenum;
  1709.             line_directive_out( stdout );
  1710.             indented_code = false;
  1711.             BEGIN(CODEBLOCK);
  1712.             }
  1713.     YY_BREAK
  1714. case 10:
  1715. #line 108 "scan.l"
  1716. {
  1717.             ++linenum;
  1718.             line_directive_out( headerfile );
  1719.             BEGIN(HEADER_BLOC);
  1720.             }
  1721.     YY_BREAK
  1722. case 11:
  1723. #line 114 "scan.l"
  1724. return ( WHITESPACE );
  1725.     YY_BREAK
  1726. case 12:
  1727. #line 116 "scan.l"
  1728. {
  1729.             set_lexer_name(0);
  1730.             sectnum = 2;
  1731.             line_directive_out( headerfile );
  1732.                   if(headerfilename!=NULL)
  1733.                 {
  1734.                    fprintf(stdout,
  1735.                           "#include \"%s\"\n",includefilename);
  1736.                  };
  1737.             line_directive_out( stdout );
  1738.             BEGIN(SECT2PROLOG);
  1739.             return ( SECTEND );
  1740.             }
  1741.     YY_BREAK
  1742. case 13:
  1743. #line 130 "scan.l"
  1744. {
  1745.     pinpoint_message( "warning - %%used/%%unused have been deprecated" );
  1746.             checking_used = REALLY_USED; BEGIN(USED_LIST);
  1747.             }
  1748.     YY_BREAK
  1749. case 14:
  1750. #line 134 "scan.l"
  1751. {
  1752.             checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  1753.     pinpoint_message( "warning - %%used/%%unused have been deprecated" );
  1754.             checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  1755.             }
  1756.     YY_BREAK
  1757. case 15:
  1758. #line 141 "scan.l"
  1759. {
  1760. #ifdef NOTDEF
  1761.             fprintf( stderr,
  1762.                  "old-style lex command at line %d ignored:\n\t%s",
  1763.                  linenum, yytext );
  1764. #endif
  1765.             ++linenum;
  1766.             }
  1767.     YY_BREAK
  1768. case 16:
  1769. #line 150 "scan.l"
  1770. /* ignore old lex directive */
  1771.     YY_BREAK
  1772. case 17:
  1773. #line 152 "scan.l"
  1774. {
  1775.             ++linenum;
  1776.             xlation =
  1777.                 (int *) malloc( sizeof( int ) * (unsigned) csize );
  1778.  
  1779.             if ( ! xlation )
  1780.                 flexfatal(
  1781.                 "dynamic memory failure building %t table" );
  1782.  
  1783.             for ( i = 0; i < csize; ++i )
  1784.                 xlation[i] = 0;
  1785.  
  1786.             num_xlations = 0;
  1787.  
  1788.             BEGIN(XLATION);
  1789.             }
  1790.     YY_BREAK
  1791. case 18:
  1792. #line 169 "scan.l"
  1793. synerr( "unrecognized '%' directive" );
  1794.     YY_BREAK
  1795. case 19:
  1796. #line 171 "scan.l"
  1797. {
  1798.             (void) strcpy( nmstr, (char *) yytext );
  1799.             didadef = false;
  1800.             BEGIN(PICKUPDEF);
  1801.             }
  1802.     YY_BREAK
  1803. case 20:
  1804. #line 177 "scan.l"
  1805. RETURNNAME;
  1806.     YY_BREAK
  1807. case 21:
  1808. #line 178 "scan.l"
  1809. ++linenum; /* allows blank lines in section 1 */
  1810.     YY_BREAK
  1811. case 22:
  1812. #line 179 "scan.l"
  1813. ++linenum; return ( '\n' );
  1814.     YY_BREAK
  1815. case 23:
  1816. #line 180 "scan.l"
  1817. {synerr( "illegal character" ); 
  1818.                          fprintf(stderr,
  1819.                            "Char : \\0x%x\n",yytext[yyleng-1]);
  1820.             BEGIN(RECOVER);}
  1821.     YY_BREAK
  1822. case 24:
  1823. #line 185 "scan.l"
  1824. {set_lexer_name(yytext);}
  1825.     YY_BREAK
  1826. case 25:
  1827. #line 186 "scan.l"
  1828. ;
  1829.     YY_BREAK
  1830. case 26:
  1831. #line 187 "scan.l"
  1832. ++linenum;BEGIN(INITIAL);
  1833.     YY_BREAK
  1834. case 27:
  1835. #line 188 "scan.l"
  1836. synerr( "illegal character" );BEGIN(RECOVER);
  1837.     YY_BREAK
  1838. case 28:
  1839. #line 190 "scan.l"
  1840. { set_lexer_name(0);
  1841.             line_directive_out( headerfile );
  1842.             fprintf(headerfile,"#define YY_%s_%s ",lexer_name,yytext);
  1843.              BEGIN(DEFINE_CONTENT);
  1844.             }
  1845.     YY_BREAK
  1846. case 29:
  1847. #line 196 "scan.l"
  1848. synerr( "illegal character" ); BEGIN(RECOVER);
  1849.     YY_BREAK
  1850. case 30:
  1851. #line 197 "scan.l"
  1852. ++linenum;BEGIN(INITIAL);
  1853.     YY_BREAK
  1854. case 31:
  1855. #line 199 "scan.l"
  1856. HEADER_ECHO;++linenum;
  1857.     YY_BREAK
  1858. case 32:
  1859. #line 200 "scan.l"
  1860. ++linenum;HEADER_ECHO;BEGIN(INITIAL);
  1861.     YY_BREAK
  1862. case 33:
  1863. #line 201 "scan.l"
  1864. HEADER_ECHO;
  1865.     YY_BREAK
  1866. case 34:
  1867. #line 203 "scan.l"
  1868. ECHO; BEGIN(INITIAL);
  1869.     YY_BREAK
  1870. case 35:
  1871. #line 204 "scan.l"
  1872. ++linenum; ECHO; BEGIN(INITIAL);
  1873.     YY_BREAK
  1874. case 36:
  1875. #line 205 "scan.l"
  1876. ECHO;
  1877.     YY_BREAK
  1878. case 37:
  1879. #line 206 "scan.l"
  1880. ECHO;
  1881.     YY_BREAK
  1882. case 38:
  1883. #line 207 "scan.l"
  1884. ++linenum; ECHO;
  1885.     YY_BREAK
  1886. case 39:
  1887. #line 209 "scan.l"
  1888. ++linenum; BEGIN(INITIAL);
  1889.     YY_BREAK
  1890. case 40:
  1891. #line 210 "scan.l"
  1892. HEADER_ECHO; CHECK_REJECT(yytext);
  1893.     YY_BREAK
  1894. case 41:
  1895. #line 211 "scan.l"
  1896. HEADER_ECHO; CHECK_YYMORE(yytext);
  1897.     YY_BREAK
  1898. case 42:
  1899. #line 212 "scan.l"
  1900. HEADER_ECHO;
  1901.     YY_BREAK
  1902. case 43:
  1903. #line 213 "scan.l"
  1904. {
  1905.             ++linenum;
  1906.             HEADER_ECHO;
  1907.             }
  1908.     YY_BREAK
  1909. case 44:
  1910. #line 219 "scan.l"
  1911. ++linenum; BEGIN(SECT2);
  1912.     YY_BREAK
  1913. case 45:
  1914. #line 220 "scan.l"
  1915. HEADER_ECHO; CHECK_REJECT(yytext);
  1916.     YY_BREAK
  1917. case 46:
  1918. #line 221 "scan.l"
  1919. HEADER_ECHO; CHECK_YYMORE(yytext);
  1920.     YY_BREAK
  1921. case 47:
  1922. #line 222 "scan.l"
  1923. HEADER_ECHO;
  1924.     YY_BREAK
  1925. case 48:
  1926. #line 223 "scan.l"
  1927. {
  1928.             ++linenum;
  1929.             HEADER_ECHO;
  1930.             }
  1931.     YY_BREAK
  1932. case 49:
  1933. #line 231 "scan.l"
  1934. ++linenum; BEGIN(INITIAL);
  1935.     YY_BREAK
  1936. case 50:
  1937. #line 232 "scan.l"
  1938. ECHO; CHECK_REJECT(yytext);
  1939.     YY_BREAK
  1940. case 51:
  1941. #line 233 "scan.l"
  1942. ECHO; CHECK_YYMORE(yytext);
  1943.     YY_BREAK
  1944. case 52:
  1945. #line 234 "scan.l"
  1946. ECHO;
  1947.     YY_BREAK
  1948. case 53:
  1949. #line 235 "scan.l"
  1950. {
  1951.             ++linenum;
  1952.             ECHO;
  1953.             if ( indented_code )
  1954.                 BEGIN(INITIAL);
  1955.             }
  1956.     YY_BREAK
  1957. case 54:
  1958. #line 243 "scan.l"
  1959. /* separates name and definition */
  1960.     YY_BREAK
  1961. case 55:
  1962. #line 245 "scan.l"
  1963. {
  1964.             (void) strcpy( (char *) nmdef, (char *) yytext );
  1965.  
  1966.             for ( i = strlen( (char *) nmdef ) - 1;
  1967.                   i >= 0 &&
  1968.                   nmdef[i] == ' ' || nmdef[i] == '\t';
  1969.                   --i )
  1970.                 ;
  1971.  
  1972.             nmdef[i + 1] = '\0';
  1973.  
  1974.                         ndinstal( nmstr, nmdef );
  1975.             didadef = true;
  1976.             }
  1977.     YY_BREAK
  1978. case 56:
  1979. #line 260 "scan.l"
  1980. {
  1981.             if ( ! didadef )
  1982.                 synerr( "incomplete name definition" );
  1983.             BEGIN(INITIAL);
  1984.             ++linenum;
  1985.             }
  1986.     YY_BREAK
  1987. case 57:
  1988. #line 267 "scan.l"
  1989. ++linenum; BEGIN(INITIAL); RETURNNAME;
  1990.     YY_BREAK
  1991. case 58:
  1992. #line 270 "scan.l"
  1993. ++linenum; BEGIN(INITIAL);
  1994.     YY_BREAK
  1995. case 59:
  1996. #line 271 "scan.l"
  1997.  
  1998.     YY_BREAK
  1999. case 60:
  2000. #line 272 "scan.l"
  2001. {
  2002.             if ( all_upper( yytext ) )
  2003.                 reject_really_used = checking_used;
  2004.             else
  2005.                 synerr( "unrecognized %used/%unused construct" );
  2006.             }
  2007.     YY_BREAK
  2008. case 61:
  2009. #line 278 "scan.l"
  2010. {
  2011.             if ( all_lower( yytext ) )
  2012.                 yymore_really_used = checking_used;
  2013.             else
  2014.                 synerr( "unrecognized %used/%unused construct" );
  2015.             }
  2016.     YY_BREAK
  2017. case 62:
  2018. #line 284 "scan.l"
  2019. synerr( "unrecognized %used/%unused construct" );
  2020.     YY_BREAK
  2021. case 63:
  2022. #line 287 "scan.l"
  2023. ++linenum; BEGIN(INITIAL);
  2024.     YY_BREAK
  2025. case 64:
  2026. #line 288 "scan.l"
  2027. ++num_xlations; new_xlation = true;
  2028.     YY_BREAK
  2029. case 65:
  2030. #line 289 "scan.l"
  2031. synerr( "bad row in translation table" );
  2032.     YY_BREAK
  2033. case 66:
  2034. #line 290 "scan.l"
  2035. /* ignore whitespace */
  2036.     YY_BREAK
  2037. case 67:
  2038. #line 292 "scan.l"
  2039. {
  2040.             xlation[myesc( yytext )] =
  2041.                 (new_xlation ? num_xlations : -num_xlations);
  2042.             new_xlation = false;
  2043.             }
  2044.     YY_BREAK
  2045. case 68:
  2046. #line 297 "scan.l"
  2047. {
  2048.             xlation[yytext[0]] =
  2049.                 (new_xlation ? num_xlations : -num_xlations);
  2050.             new_xlation = false;
  2051.             }
  2052.     YY_BREAK
  2053. case 69:
  2054. #line 303 "scan.l"
  2055. ++linenum;
  2056.     YY_BREAK
  2057. case 70:
  2058. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2059. yy_c_buf_p = yy_cp -= 1;
  2060. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2061. #line 306 "scan.l"
  2062. {
  2063.             ++linenum;
  2064.             ACTION_ECHO;
  2065.             MARK_END_OF_PROLOG;
  2066.             BEGIN(SECT2);
  2067.             }
  2068.     YY_BREAK
  2069. case 71:
  2070. #line 313 "scan.l"
  2071. ++linenum; ACTION_ECHO;
  2072.     YY_BREAK
  2073. case YY_STATE_EOF(SECT2PROLOG):
  2074. #line 315 "scan.l"
  2075. MARK_END_OF_PROLOG; yyterminate();
  2076.     YY_BREAK
  2077. case 73:
  2078. #line 317 "scan.l"
  2079. ++linenum; /* allow blank lines in section 2 */
  2080.     YY_BREAK
  2081. case 74:
  2082. #line 319 "scan.l"
  2083. {
  2084.             line_directive_out( headerfile );
  2085.             BEGIN(HEADER2_BLOC);
  2086.             }
  2087.     YY_BREAK
  2088. case 75:
  2089. #line 323 "scan.l"
  2090. {
  2091.             indented_code = (yytext[0] != '%');
  2092.             doing_codeblock = true;
  2093.             bracelevel = 1;
  2094.  
  2095.             if ( indented_code )
  2096.                 ACTION_ECHO;
  2097.  
  2098.             BEGIN(CODEBLOCK_2);
  2099.             }
  2100.     YY_BREAK
  2101. case 76:
  2102. #line 334 "scan.l"
  2103. BEGIN(SC); return ( '<' );
  2104.     YY_BREAK
  2105. case 77:
  2106. #line 335 "scan.l"
  2107. return ( '^' );
  2108.     YY_BREAK
  2109. case 78:
  2110. #line 336 "scan.l"
  2111. BEGIN(QUOTE); return ( '"' );
  2112.     YY_BREAK
  2113. case 79:
  2114. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2115. yy_c_buf_p = yy_cp = yy_bp + 1;
  2116. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2117. #line 337 "scan.l"
  2118. BEGIN(NUM); return ( '{' );
  2119.     YY_BREAK
  2120. case 80:
  2121. #line 338 "scan.l"
  2122. BEGIN(BRACEERROR);
  2123.     YY_BREAK
  2124. case 81:
  2125. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2126. yy_c_buf_p = yy_cp = yy_bp + 1;
  2127. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2128. #line 339 "scan.l"
  2129. return ( '$' );
  2130.     YY_BREAK
  2131. case 82:
  2132. #line 341 "scan.l"
  2133. {
  2134.             bracelevel = 1;
  2135.             BEGIN(PERCENT_BRACE_ACTION);
  2136.             return ( '\n' );
  2137.             }
  2138.     YY_BREAK
  2139. case 83:
  2140. #line 346 "scan.l"
  2141. continued_action = true; ++linenum; return ( '\n' );
  2142.     YY_BREAK
  2143. case 84:
  2144. #line 348 "scan.l"
  2145. {
  2146.             /* this rule is separate from the one below because
  2147.              * otherwise we get variable trailing context, so
  2148.              * we can't build the scanner using -{f,F}
  2149.              */
  2150.             bracelevel = 0;
  2151.             continued_action = false;
  2152.             BEGIN(ACTION);
  2153.             return ( '\n' );
  2154.             }
  2155.     YY_BREAK
  2156. case 85:
  2157. #line 359 "scan.l"
  2158. {
  2159.             bracelevel = 0;
  2160.             continued_action = false;
  2161.             BEGIN(ACTION);
  2162.             return ( '\n' );
  2163.             }
  2164.     YY_BREAK
  2165. case 86:
  2166. #line 366 "scan.l"
  2167. ++linenum; return ( '\n' );
  2168.     YY_BREAK
  2169. case 87:
  2170. #line 368 "scan.l"
  2171. return ( EOF_OP );
  2172.     YY_BREAK
  2173. case 88:
  2174. #line 370 "scan.l"
  2175. {
  2176.             sectnum = 3;
  2177.             BEGIN(SECT3);
  2178.             return ( EOF ); /* to stop the parser */
  2179.             }
  2180.     YY_BREAK
  2181. case 89:
  2182. #line 376 "scan.l"
  2183. {
  2184.             int cclval;
  2185.  
  2186.             (void) strcpy( nmstr, (char *) yytext );
  2187.  
  2188.             /* check to see if we've already encountered this ccl */
  2189.             if ( (cclval = ccllookup( (Char *) nmstr )) )
  2190.                 {
  2191.                 yylval = cclval;
  2192.                 ++cclreuse;
  2193.                 return ( PREVCCL );
  2194.                 }
  2195.             else
  2196.                 {
  2197.                 /* we fudge a bit.  We know that this ccl will
  2198.                  * soon be numbered as lastccl + 1 by cclinit
  2199.                  */
  2200.                 cclinstal( (Char *) nmstr, lastccl + 1 );
  2201.  
  2202.                 /* push back everything but the leading bracket
  2203.                  * so the ccl can be rescanned
  2204.                  */
  2205.                 PUT_BACK_STRING((Char *) nmstr, 1);
  2206.  
  2207.                 BEGIN(FIRSTCCL);
  2208.                 return ( '[' );
  2209.                 }
  2210.             }
  2211.     YY_BREAK
  2212. case 90:
  2213. #line 405 "scan.l"
  2214. {
  2215.             register Char *nmdefptr;
  2216.             Char *ndlookup();
  2217.  
  2218.             (void) strcpy( nmstr, (char *) yytext );
  2219.             nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
  2220.  
  2221.             /* lookup from "nmstr + 1" to chop leading brace */
  2222.             if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
  2223.                 synerr( "undefined {name}" );
  2224.  
  2225.             else
  2226.                 { /* push back name surrounded by ()'s */
  2227.                 unput(')');
  2228.                 PUT_BACK_STRING(nmdefptr, 0);
  2229.                 unput('(');
  2230.                 }
  2231.             }
  2232.     YY_BREAK
  2233. case 91:
  2234. #line 424 "scan.l"
  2235. return ( yytext[0] );
  2236.     YY_BREAK
  2237. case 92:
  2238. #line 425 "scan.l"
  2239. RETURNCHAR;
  2240.     YY_BREAK
  2241. case 93:
  2242. #line 426 "scan.l"
  2243. ++linenum; return ( '\n' );
  2244.     YY_BREAK
  2245. case 94:
  2246. #line 429 "scan.l"
  2247. return ( ',' );
  2248.     YY_BREAK
  2249. case 95:
  2250. #line 430 "scan.l"
  2251. BEGIN(SECT2); return ( '>' );
  2252.     YY_BREAK
  2253. case 96:
  2254. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2255. yy_c_buf_p = yy_cp = yy_bp + 1;
  2256. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2257. #line 431 "scan.l"
  2258. BEGIN(CARETISBOL); return ( '>' );
  2259.     YY_BREAK
  2260. case 97:
  2261. #line 432 "scan.l"
  2262. RETURNNAME;
  2263.     YY_BREAK
  2264. case 98:
  2265. #line 433 "scan.l"
  2266. synerr( "bad start condition name" );
  2267.     YY_BREAK
  2268. case 99:
  2269. #line 435 "scan.l"
  2270. BEGIN(SECT2); return ( '^' );
  2271.     YY_BREAK
  2272. case 100:
  2273. #line 438 "scan.l"
  2274. RETURNCHAR;
  2275.     YY_BREAK
  2276. case 101:
  2277. #line 439 "scan.l"
  2278. BEGIN(SECT2); return ( '"' );
  2279.     YY_BREAK
  2280. case 102:
  2281. #line 441 "scan.l"
  2282. {
  2283.             synerr( "missing quote" );
  2284.             BEGIN(SECT2);
  2285.             ++linenum;
  2286.             return ( '"' );
  2287.             }
  2288.     YY_BREAK
  2289. case 103:
  2290. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2291. yy_c_buf_p = yy_cp = yy_bp + 1;
  2292. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2293. #line 449 "scan.l"
  2294. BEGIN(CCL); return ( '^' );
  2295.     YY_BREAK
  2296. case 104:
  2297. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2298. yy_c_buf_p = yy_cp = yy_bp + 1;
  2299. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2300. #line 450 "scan.l"
  2301. return ( '^' );
  2302.     YY_BREAK
  2303. case 105:
  2304. #line 451 "scan.l"
  2305. BEGIN(CCL); yylval = '-'; return ( CHAR );
  2306.     YY_BREAK
  2307. case 106:
  2308. #line 452 "scan.l"
  2309. BEGIN(CCL); RETURNCHAR;
  2310.     YY_BREAK
  2311. case 107:
  2312. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2313. yy_c_buf_p = yy_cp = yy_bp + 1;
  2314. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2315. #line 454 "scan.l"
  2316. return ( '-' );
  2317.     YY_BREAK
  2318. case 108:
  2319. #line 455 "scan.l"
  2320. RETURNCHAR;
  2321.     YY_BREAK
  2322. case 109:
  2323. #line 456 "scan.l"
  2324. BEGIN(SECT2); return ( ']' );
  2325.     YY_BREAK
  2326. case 110:
  2327. #line 459 "scan.l"
  2328. {
  2329.             yylval = myctoi( yytext );
  2330.             return ( NUMBER );
  2331.             }
  2332.     YY_BREAK
  2333. case 111:
  2334. #line 464 "scan.l"
  2335. return ( ',' );
  2336.     YY_BREAK
  2337. case 112:
  2338. #line 465 "scan.l"
  2339. BEGIN(SECT2); return ( '}' );
  2340.     YY_BREAK
  2341. case 113:
  2342. #line 467 "scan.l"
  2343. {
  2344.             synerr( "bad character inside {}'s" );
  2345.             BEGIN(SECT2);
  2346.             return ( '}' );
  2347.             }
  2348.     YY_BREAK
  2349. case 114:
  2350. #line 473 "scan.l"
  2351. {
  2352.             synerr( "missing }" );
  2353.             BEGIN(SECT2);
  2354.             ++linenum;
  2355.             return ( '}' );
  2356.             }
  2357.     YY_BREAK
  2358. case 115:
  2359. #line 481 "scan.l"
  2360. synerr( "bad name in {}'s" ); BEGIN(SECT2);
  2361.     YY_BREAK
  2362. case 116:
  2363. #line 482 "scan.l"
  2364. synerr( "missing }" ); ++linenum; BEGIN(SECT2);
  2365.     YY_BREAK
  2366. case 117:
  2367. #line 485 "scan.l"
  2368. bracelevel = 0;
  2369.     YY_BREAK
  2370. case 118:
  2371. #line 486 "scan.l"
  2372. {
  2373.             ACTION_ECHO;
  2374.             CHECK_REJECT(yytext);
  2375.             }
  2376.     YY_BREAK
  2377. case 119:
  2378. #line 490 "scan.l"
  2379. {
  2380.             ACTION_ECHO;
  2381.             CHECK_YYMORE(yytext);
  2382.             }
  2383.     YY_BREAK
  2384. case 120:
  2385. #line 494 "scan.l"
  2386. ACTION_ECHO;
  2387.     YY_BREAK
  2388. case 121:
  2389. #line 495 "scan.l"
  2390. {
  2391.             ++linenum;
  2392.             ACTION_ECHO;
  2393.             if ( bracelevel == 0 ||
  2394.                  (doing_codeblock && indented_code) )
  2395.                 {
  2396.                 if ( ! doing_codeblock )
  2397.                 fputs( "\tYY_BREAK\n", temp_action_file );
  2398.                 
  2399.                 doing_codeblock = false;
  2400.                 BEGIN(SECT2);
  2401.                 }
  2402.             }
  2403.     YY_BREAK
  2404.     /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
  2405. case 122:
  2406. #line 511 "scan.l"
  2407. ACTION_ECHO; ++bracelevel;
  2408.     YY_BREAK
  2409. case 123:
  2410. #line 512 "scan.l"
  2411. ACTION_ECHO; --bracelevel;
  2412.     YY_BREAK
  2413. case 124:
  2414. #line 513 "scan.l"
  2415. ACTION_ECHO;
  2416.     YY_BREAK
  2417. case 125:
  2418. #line 514 "scan.l"
  2419. ACTION_ECHO;
  2420.     YY_BREAK
  2421. case 126:
  2422. #line 515 "scan.l"
  2423. ++linenum;ACTION_ECHO; 
  2424.     YY_BREAK
  2425. case 127:
  2426. #line 516 "scan.l"
  2427. ACTION_ECHO; BEGIN(ACTION_COMMENT);
  2428.     YY_BREAK
  2429. case 128:
  2430. #line 517 "scan.l"
  2431. ACTION_ECHO; /* character constant */
  2432.     YY_BREAK
  2433. case 129:
  2434. #line 518 "scan.l"
  2435. ACTION_ECHO; BEGIN(ACTION_STRING);
  2436.     YY_BREAK
  2437. case 130:
  2438. #line 519 "scan.l"
  2439. {
  2440.             ++linenum;
  2441.             ACTION_ECHO;
  2442.             if ( bracelevel == 0 )
  2443.                 {
  2444.                 fputs( "\tYY_BREAK\n", temp_action_file );
  2445.                 BEGIN(SECT2);
  2446.                 }
  2447.             }
  2448.     YY_BREAK
  2449. case 131:
  2450. #line 528 "scan.l"
  2451. ACTION_ECHO;
  2452.     YY_BREAK
  2453. case 132:
  2454. #line 530 "scan.l"
  2455. ACTION_ECHO; BEGIN(ACTION);
  2456.     YY_BREAK
  2457. case 133:
  2458. #line 531 "scan.l"
  2459. ACTION_ECHO;
  2460.     YY_BREAK
  2461. case 134:
  2462. #line 532 "scan.l"
  2463. ACTION_ECHO;
  2464.     YY_BREAK
  2465. case 135:
  2466. #line 533 "scan.l"
  2467. ++linenum; ACTION_ECHO;
  2468.     YY_BREAK
  2469. case 136:
  2470. #line 534 "scan.l"
  2471. ACTION_ECHO;
  2472.     YY_BREAK
  2473. case 137:
  2474. #line 536 "scan.l"
  2475. ACTION_ECHO;
  2476.     YY_BREAK
  2477. case 138:
  2478. #line 537 "scan.l"
  2479. ACTION_ECHO;
  2480.     YY_BREAK
  2481. case 139:
  2482. #line 538 "scan.l"
  2483. ++linenum; ACTION_ECHO;
  2484.     YY_BREAK
  2485. case 140:
  2486. #line 539 "scan.l"
  2487. ACTION_ECHO; BEGIN(ACTION);
  2488.     YY_BREAK
  2489. case 141:
  2490. #line 540 "scan.l"
  2491. ACTION_ECHO;
  2492.     YY_BREAK
  2493. case YY_STATE_EOF(ACTION):
  2494. case YY_STATE_EOF(ACTION_COMMENT):
  2495. case YY_STATE_EOF(ACTION_STRING):
  2496. #line 542 "scan.l"
  2497. {
  2498.             synerr( "EOF encountered inside an action" );
  2499.             yyterminate();
  2500.             }
  2501.     YY_BREAK
  2502. case 143:
  2503. #line 548 "scan.l"
  2504. {
  2505.             yylval = myesc( yytext );
  2506.             return ( CHAR );
  2507.             }
  2508.     YY_BREAK
  2509. case 144:
  2510. #line 553 "scan.l"
  2511. {
  2512.             yylval = myesc( yytext );
  2513.             BEGIN(CCL);
  2514.             return ( CHAR );
  2515.             }
  2516.     YY_BREAK
  2517. case 145:
  2518. #line 560 "scan.l"
  2519. ECHO;
  2520.     YY_BREAK
  2521. case 146:
  2522. #line 561 "scan.l"
  2523. ECHO;
  2524.     YY_BREAK
  2525.         case YY_STATE_EOF(INITIAL):
  2526.         case YY_STATE_EOF(SECT2):
  2527.         case YY_STATE_EOF(SECT3):
  2528.         case YY_STATE_EOF(CODEBLOCK):
  2529.         case YY_STATE_EOF(PICKUPDEF):
  2530.         case YY_STATE_EOF(SC):
  2531.         case YY_STATE_EOF(CARETISBOL):
  2532.         case YY_STATE_EOF(NUM):
  2533.         case YY_STATE_EOF(QUOTE):
  2534.         case YY_STATE_EOF(FIRSTCCL):
  2535.         case YY_STATE_EOF(CCL):
  2536.         case YY_STATE_EOF(RECOVER):
  2537.         case YY_STATE_EOF(BRACEERROR):
  2538.         case YY_STATE_EOF(C_COMMENT):
  2539.         case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  2540.         case YY_STATE_EOF(USED_LIST):
  2541.         case YY_STATE_EOF(CODEBLOCK_2):
  2542.         case YY_STATE_EOF(XLATION):
  2543.         case YY_STATE_EOF(HEADER_BLOC):
  2544.         case YY_STATE_EOF(HEADER2_BLOC):
  2545.         case YY_STATE_EOF(NAME_DECLARE):
  2546.         case YY_STATE_EOF(DEFINE_DECLARE):
  2547.         case YY_STATE_EOF(DEFINE_CONTENT):
  2548.         yyterminate();
  2549. # line 410 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2550.  
  2551.         case YY_END_OF_BUFFER:
  2552.         {
  2553.         /* amount of text matched not including the EOB char */
  2554.         int yy_amount_of_matched_text = yy_cp - yy___text - 1;
  2555.  
  2556.         /* undo the effects of YY_DO_BEFORE_ACTION */
  2557.         *yy_cp = yy_hold_char;
  2558.  
  2559.         /* note that here we test for yy_c_buf_p "<=" to the position
  2560.          * of the first EOB in the buffer, since yy_c_buf_p will
  2561.          * already have been incremented past the NUL character
  2562.          * (since all states make transitions on EOB to the end-
  2563.          * of-buffer state).  Contrast this with the test in yyinput().
  2564.          */
  2565.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2566.             /* this was really a NUL */
  2567.             {
  2568.             yy_state_type yy_next_state;
  2569.  
  2570.             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
  2571.  
  2572.             yy_current_state = yy_get_previous_state();
  2573.  
  2574.             /* okay, we're now positioned to make the
  2575.              * NUL transition.  We couldn't have
  2576.              * yy_get_previous_state() go ahead and do it
  2577.              * for us because it doesn't know how to deal
  2578.              * with the possibility of jamming (and we
  2579.              * don't want to build jamming into it because
  2580.              * then it will run more slowly)
  2581.              */
  2582.  
  2583.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2584.  
  2585.             yy_bp = yy___text + YY_MORE_ADJ;
  2586.  
  2587.             if ( yy_next_state )
  2588.             {
  2589.             /* consume the NUL */
  2590.             yy_cp = ++yy_c_buf_p;
  2591.             yy_current_state = yy_next_state;
  2592.             goto yy_match;
  2593.             }
  2594.  
  2595.             else
  2596.             {
  2597. /* % code to do backtracking for compressed tables and set up yy_cp goes here */ 
  2598. # line 458 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2599.             goto yy_find_action;
  2600.             }
  2601.             }
  2602.  
  2603.         else switch ( yy_get_next_buffer() )
  2604.             {
  2605.             case EOB_ACT_END_OF_FILE:
  2606.             {
  2607.             yy_did_buffer_switch_on_eof = 0;
  2608.  
  2609.             if ( yywrap() )
  2610.                 {
  2611.                 /* note: because we've taken care in
  2612.                  * yy_get_next_buffer() to have set up yy___text,
  2613.                  * we can now set up yy_c_buf_p so that if some
  2614.                  * total hoser (like flex itself) wants
  2615.                  * to call the scanner after we return the
  2616.                  * YY_NULL, it'll still work - another YY_NULL
  2617.                  * will get returned.
  2618.                  */
  2619.                 yy_c_buf_p = yy___text + YY_MORE_ADJ;
  2620.  
  2621.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  2622.                 goto do_action;
  2623.                 }
  2624.  
  2625.             else
  2626.                 {
  2627.                 if ( ! yy_did_buffer_switch_on_eof )
  2628.                 YY_NEW_FILE;
  2629.                 }
  2630.             }
  2631.             break;
  2632.  
  2633.             case EOB_ACT_CONTINUE_SCAN:
  2634.             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
  2635.  
  2636.             yy_current_state = yy_get_previous_state();
  2637.  
  2638.             yy_cp = yy_c_buf_p;
  2639.             yy_bp = yy___text + YY_MORE_ADJ;
  2640.             goto yy_match;
  2641.  
  2642.             case EOB_ACT_LAST_MATCH:
  2643.             yy_c_buf_p =
  2644.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2645.  
  2646.             yy_current_state = yy_get_previous_state();
  2647.  
  2648.             yy_cp = yy_c_buf_p;
  2649.             yy_bp = yy___text + YY_MORE_ADJ;
  2650.             goto yy_find_action;
  2651.             }
  2652.         break;
  2653.         }
  2654.  
  2655.         default:
  2656. #ifdef FLEX_DEBUG
  2657.         printf( "action # %d\n", yy_act );
  2658. #endif
  2659.         YY_FATAL_ERROR(
  2660.             "fatal flex scanner internal error--no action found" );
  2661.         }
  2662.     }
  2663.     };
  2664.  
  2665.  
  2666. /* yy_get_next_buffer - try to read in a new buffer
  2667.  *
  2668.  * synopsis
  2669.  *     int yy_get_next_buffer();
  2670.  *     
  2671.  * returns a code representing an action
  2672.  *     EOB_ACT_LAST_MATCH - 
  2673.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2674.  *     EOB_ACT_END_OF_FILE - end of file
  2675.  */
  2676. #ifndef YY_USE_CLASS
  2677. static int yy_get_next_buffer()
  2678. #else
  2679. int lex::yy_get_next_buffer()
  2680. #endif
  2681.     {
  2682.     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
  2683.     register YY_CHAR *source = yy___text - 1; /* copy prev. char, too */
  2684.     register int number_to_move, i;
  2685.     int ret_val;
  2686.  
  2687.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2688.     YY_FATAL_ERROR(
  2689.         "fatal flex scanner internal error--end of buffer missed" );
  2690.  
  2691.     /* try to read more data */
  2692.  
  2693.     /* first move last chars to start of buffer */
  2694.     number_to_move = yy_c_buf_p - yy___text;
  2695.  
  2696.     for ( i = 0; i < number_to_move; ++i )
  2697.     *(dest++) = *(source++);
  2698.  
  2699.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  2700.     /* don't do the read, it's not guaranteed to return an EOF,
  2701.      * just force an EOF
  2702.      */
  2703.     yy_n_chars = 0;
  2704.  
  2705.     else
  2706.     {
  2707.     int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  2708.  
  2709.     if ( num_to_read > YY_READ_BUF_SIZE )
  2710.         num_to_read = YY_READ_BUF_SIZE;
  2711.  
  2712.     else if ( num_to_read <= 0 )
  2713.         YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  2714.  
  2715.     /* read in more data */
  2716.     YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2717.           yy_n_chars, num_to_read );
  2718.     }
  2719.  
  2720.     if ( yy_n_chars == 0 )
  2721.     {
  2722.     if ( number_to_move == 1 )
  2723.         {
  2724.         ret_val = EOB_ACT_END_OF_FILE;
  2725.         yy_current_buffer->yy_eof_status = EOF_DONE;
  2726.         }
  2727.  
  2728.     else
  2729.         {
  2730.         ret_val = EOB_ACT_LAST_MATCH;
  2731.         yy_current_buffer->yy_eof_status = EOF_PENDING;
  2732.         }
  2733.     }
  2734.  
  2735.     else
  2736.     ret_val = EOB_ACT_CONTINUE_SCAN;
  2737.  
  2738.     yy_n_chars += number_to_move;
  2739.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2740.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2741.  
  2742.     /* yy___text begins at the second character in yy_ch_buf; the first
  2743.      * character is the one which preceded it before reading in the latest
  2744.      * buffer; it needs to be kept around in case it's a newline, so
  2745.      * yy_get_previous_state() will have with '^' rules active
  2746.      */
  2747.  
  2748.     yy___text = &yy_current_buffer->yy_ch_buf[1];
  2749.  
  2750.     return ( ret_val );
  2751.     };
  2752.  
  2753.  
  2754. /* yy_get_previous_state - get the state just before the EOB char was reached
  2755.  *
  2756.  * synopsis
  2757.  *     yy_state_type yy_get_previous_state();
  2758.  */
  2759.  
  2760. #ifndef YY_USE_CLASS
  2761. static yy_state_type yy_get_previous_state()
  2762. #else
  2763. long lex::yy_get_previous_state_()
  2764. #endif
  2765.     {
  2766.     register yy_state_type yy_current_state;
  2767.     register YY_CHAR *yy_cp;
  2768.  
  2769. /* % code to get the start state into yy_current_state goes here */ 
  2770.     register YY_CHAR *yy_bp = yy___text;
  2771.  
  2772.     yy_current_state = yy_start;
  2773.     if ( yy_bp[-1] == '\n' )
  2774.     ++yy_current_state;
  2775.     yy_state_ptr = yy_state_buf;
  2776.     *yy_state_ptr++ = yy_current_state;
  2777. # line 629 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2778.  
  2779.     for ( yy_cp = yy___text + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2780.     {
  2781. /* % code to find the next state goes here */ 
  2782.     register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  2783.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2784.         {
  2785.         yy_current_state = yy_def[yy_current_state];
  2786.         if ( yy_current_state >= 529 )
  2787.         yy_c = yy_meta[yy_c];
  2788.         }
  2789.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2790.     *yy_state_ptr++ = yy_current_state;
  2791. # line 633 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2792.     }
  2793.  
  2794. #ifndef YY_USE_CLASS
  2795.     return ( yy_current_state );
  2796. #else
  2797.     return (long)( yy_current_state );
  2798. #endif
  2799.     };
  2800.  
  2801.  
  2802. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2803.  *
  2804.  * synopsis
  2805.  *     next_state = yy_try_NUL_trans( current_state );
  2806.  */
  2807.  
  2808. #ifndef YY_USE_CLASS
  2809. #ifdef YY_USE_PROTOS
  2810. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  2811. #else
  2812. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2813. register yy_state_type yy_current_state;
  2814. #endif
  2815. #else
  2816. long lex::yy_try_NUL_trans_(long yy_current_state_)
  2817. #endif
  2818.  
  2819.     {
  2820. #ifndef YY_USE_CLASS
  2821. #else
  2822.     yy_state_type yy_current_state=(yy_state_type)yy_current_state_;
  2823. #endif
  2824.     register int yy_is_jam;
  2825. /* % code to find the next state, and perhaps do backtracking, goes here */ 
  2826.  
  2827.     register YY_CHAR yy_c = 1;
  2828.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2829.     {
  2830.     yy_current_state = yy_def[yy_current_state];
  2831.     if ( yy_current_state >= 529 )
  2832.         yy_c = yy_meta[yy_c];
  2833.     }
  2834.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2835.     *yy_state_ptr++ = yy_current_state;
  2836.     yy_is_jam = (yy_current_state == 528);
  2837. # line 667 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2838.  
  2839. #ifndef YY_USE_CLASS
  2840.     return ( yy_is_jam ? 0 : yy_current_state );
  2841. #else
  2842.     return (long)( yy_is_jam ? 0 : yy_current_state );
  2843. #endif
  2844.     };
  2845.  
  2846. #ifndef YY_USE_CLASS
  2847. #ifdef YY_USE_PROTOS
  2848. static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
  2849. #else
  2850. static void yyunput( c, yy_bp )
  2851. YY_CHAR c;
  2852. register YY_CHAR *yy_bp;
  2853. #endif
  2854. #else
  2855. void lex::yyunput( YY_CHAR c, YY_CHAR *yy_bp )
  2856. #endif
  2857.  
  2858.     {
  2859.     register YY_CHAR *yy_cp = yy_c_buf_p;
  2860.  
  2861.     /* undo effects of setting up yy___text */
  2862.     *yy_cp = yy_hold_char;
  2863.  
  2864.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2865.     { /* need to shift things up to make room */
  2866.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  2867.     register YY_CHAR *dest =
  2868.         &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  2869.     register YY_CHAR *source =
  2870.         &yy_current_buffer->yy_ch_buf[number_to_move];
  2871.  
  2872.     while ( source > yy_current_buffer->yy_ch_buf )
  2873.         *--dest = *--source;
  2874.  
  2875.     yy_cp += dest - source;
  2876.     yy_bp += dest - source;
  2877.     yy_n_chars = yy_current_buffer->yy_buf_size;
  2878.  
  2879.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2880.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2881.     }
  2882.  
  2883.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  2884.     yy_cp[-2] = '\n';
  2885.  
  2886.     *--yy_cp = c;
  2887.  
  2888.     /* note: the formal parameter *must* be called "yy_bp" for this
  2889.      *       macro to now work correctly
  2890.      */
  2891.     YY_DO_BEFORE_ACTION; /* set up yy___text again */
  2892.     };
  2893.  
  2894. #ifndef YY_USE_CLASS
  2895. #ifdef __cplusplus
  2896. static int yyinput()
  2897. #else
  2898. static int input()
  2899. #endif
  2900. #else
  2901. int lex::input()
  2902. #endif
  2903.     {
  2904.     int c;
  2905.     YY_CHAR *yy_cp = yy_c_buf_p;
  2906.  
  2907.     *yy_cp = yy_hold_char;
  2908.  
  2909.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  2910.     {
  2911.     /* yy_c_buf_p now points to the character we want to return.
  2912.      * If this occurs *before* the EOB characters, then it's a
  2913.      * valid NUL; if not, then we've hit the end of the buffer.
  2914.      */
  2915.     if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2916.         /* this was really a NUL */
  2917.         *yy_c_buf_p = '\0';
  2918.  
  2919.     else
  2920.         { /* need more input */
  2921.         yy___text = yy_c_buf_p;
  2922.         ++yy_c_buf_p;
  2923.  
  2924.         switch ( yy_get_next_buffer() )
  2925.         {
  2926.         case EOB_ACT_END_OF_FILE:
  2927.             {
  2928.             if ( yywrap() )
  2929.             {
  2930.             yy_c_buf_p = yy___text + YY_MORE_ADJ;
  2931.             return ( EOF );
  2932.             }
  2933.  
  2934.             YY_NEW_FILE;
  2935. #ifndef YY_USE_CLASS
  2936. #ifdef __cplusplus
  2937.             return ( yyinput() );
  2938. #else
  2939.             return ( input() );
  2940. #endif
  2941. #else
  2942.             return ( input() );
  2943. #endif
  2944.             }
  2945.             break;
  2946.  
  2947.         case EOB_ACT_CONTINUE_SCAN:
  2948.             yy_c_buf_p = yy___text + YY_MORE_ADJ;
  2949.             break;
  2950.  
  2951.         case EOB_ACT_LAST_MATCH:
  2952. #ifndef YY_USE_CLASS
  2953. #ifdef __cplusplus
  2954.             YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  2955. #else
  2956.             YY_FATAL_ERROR( "unexpected last match in input()" );
  2957. #endif
  2958. #else
  2959.             YY_FATAL_ERROR( "unexpected last match in lex::input()" );
  2960. #endif
  2961.         }
  2962.         }
  2963.     }
  2964.  
  2965.     c = *yy_c_buf_p;
  2966.     yy_hold_char = *++yy_c_buf_p;
  2967.  
  2968.     return ( c );
  2969.     };
  2970.  
  2971.  
  2972. #ifndef YY_USE_CLASS
  2973. #ifdef YY_USE_PROTOS
  2974. void yyrestart( FILE *input_file )
  2975. #else
  2976. void yyrestart( input_file )
  2977. FILE *input_file;
  2978. #endif
  2979. #else
  2980. void lex::yyrestart ( FILE *input_file )
  2981. #endif
  2982.  
  2983.     {
  2984.     yy_init_buffer( yy_current_buffer, input_file );
  2985.     yy_load_buffer_state();
  2986.     };
  2987.  
  2988.  
  2989. #ifndef YY_USE_CLASS
  2990. #ifdef YY_USE_PROTOS
  2991. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2992. #else
  2993. void yy_switch_to_buffer( new_buffer )
  2994. YY_BUFFER_STATE new_buffer;
  2995. #endif
  2996. #else
  2997. void lex::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2998. #endif
  2999.  
  3000.     {
  3001.     if ( yy_current_buffer == new_buffer )
  3002.     return;
  3003.  
  3004.     if ( yy_current_buffer )
  3005.     {
  3006.     /* flush out information for old buffer */
  3007.     *yy_c_buf_p = yy_hold_char;
  3008.     yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  3009.     yy_current_buffer->yy_n_chars = yy_n_chars;
  3010.     }
  3011.  
  3012.     yy_current_buffer = new_buffer;
  3013.     yy_load_buffer_state();
  3014.  
  3015.     /* we don't actually know whether we did this switch during
  3016.      * EOF (yywrap()) processing, but the only time this flag
  3017.      * is looked at is after yywrap() is called, so it's safe
  3018.      * to go ahead and always set it.
  3019.      */
  3020.     yy_did_buffer_switch_on_eof = 1;
  3021.     };
  3022.  
  3023.  
  3024. #ifndef YY_USE_CLASS
  3025. #ifdef YY_USE_PROTOS
  3026. void yy_load_buffer_state( void )
  3027. #else
  3028. void yy_load_buffer_state()
  3029. #endif
  3030. #else
  3031. void lex::yy_load_buffer_state(  )
  3032. #endif
  3033.  
  3034.     {
  3035.     yy_n_chars = yy_current_buffer->yy_n_chars;
  3036.     yy___text = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  3037.     yy___in = yy_current_buffer->yy_input_file;
  3038.     yy_hold_char = *yy_c_buf_p;
  3039.     };
  3040.  
  3041.  
  3042. #ifndef YY_USE_CLASS
  3043. #ifdef YY_USE_PROTOS
  3044. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  3045. #else
  3046. YY_BUFFER_STATE yy_create_buffer( file, size )
  3047. FILE *file;
  3048. int size;
  3049. #endif
  3050. #else
  3051. YY_BUFFER_STATE lex::yy_create_buffer( FILE *file, int size )
  3052. #endif
  3053.  
  3054.     {
  3055.     YY_BUFFER_STATE b;
  3056.  
  3057.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  3058.  
  3059.     if ( ! b )
  3060.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3061.  
  3062.     b->yy_buf_size = size;
  3063.  
  3064.     /* yy_ch_buf has to be 2 characters longer than the size given because
  3065.      * we need to put in 2 end-of-buffer characters.
  3066.      */
  3067.     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  3068.  
  3069.     if ( ! b->yy_ch_buf )
  3070.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3071.  
  3072.     yy_init_buffer( b, file );
  3073.  
  3074.     return ( b );
  3075.     };
  3076.  
  3077.  
  3078. #ifndef YY_USE_CLASS
  3079. #ifdef YY_USE_PROTOS
  3080. void yy_delete_buffer( YY_BUFFER_STATE b )
  3081. #else
  3082. void yy_delete_buffer( b )
  3083. YY_BUFFER_STATE b;
  3084. #endif
  3085. #else
  3086. void lex::yy_delete_buffer( YY_BUFFER_STATE b )
  3087. #endif
  3088.  
  3089.     {
  3090.     if ( b == yy_current_buffer )
  3091.     yy_current_buffer = (YY_BUFFER_STATE) 0;
  3092.  
  3093.     free( (char *) b->yy_ch_buf );
  3094.     free( (char *) b );
  3095.     };
  3096.  
  3097.  
  3098. #ifndef YY_USE_CLASS
  3099. #ifdef YY_USE_PROTOS
  3100. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  3101. #else
  3102. void yy_init_buffer( b, file )
  3103. YY_BUFFER_STATE b;
  3104. FILE *file;
  3105. #endif
  3106. #else
  3107. void lex::yy_init_buffer( YY_BUFFER_STATE b, FILE *file)
  3108. #endif
  3109.  
  3110.     {
  3111.     b->yy_input_file = file;
  3112.  
  3113.     /* we put in the '\n' and start reading from [1] so that an
  3114.      * initial match-at-newline will be true.
  3115.      */
  3116.  
  3117.     b->yy_ch_buf[0] = '\n';
  3118.     b->yy_n_chars = 1;
  3119.  
  3120.     /* we always need two end-of-buffer characters.  The first causes
  3121.      * a transition to the end-of-buffer state.  The second causes
  3122.      * a jam in that state.
  3123.      */
  3124.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  3125.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  3126.  
  3127.     b->yy_buf_pos = &b->yy_ch_buf[1];
  3128.  
  3129.     b->yy_eof_status = EOF_NOT_SEEN;
  3130.     };
  3131. #line 561 "scan.l"
  3132.  
  3133.  
  3134.  
  3135. int yywrap()
  3136.  
  3137.     {
  3138.     if ( --num_input_files > 0 )
  3139.     {
  3140.     set_input_file( *++input_files );
  3141.     return ( 0 );
  3142.     }
  3143.  
  3144.     else
  3145.     return ( 1 );
  3146.     }
  3147.  
  3148.  
  3149. /* set_input_file - open the given file (if NULL, stdin) for scanning */
  3150.  
  3151. void set_input_file( file )
  3152. char *file;
  3153.  
  3154.     {
  3155.     if ( file )
  3156.     {
  3157.     infilename = file;
  3158.     yyin = fopen( infilename, "r" );
  3159.  
  3160.     if ( yyin == NULL )
  3161.         lerrsf( "can't open %s", file );
  3162.     }
  3163.  
  3164.     else
  3165.     {
  3166.     yyin = stdin;
  3167.     infilename = "<stdin>";
  3168.     }
  3169.     }
  3170.  
  3171.